ASC2D stands for a simple Cartesian 2D solver. More specifically, this is a two-dimensional nodal discontinuous Galerkin finite element method (DG-FEM) solver. Its purpose is for testing different non-reflective boundary conditions (NRBCs) in the context of the non-linear Euler equations (EEs).
Additional information and/or templates would be provided, if users are interested. Keep in mind that ASC2D is written with flexibility and readability in mind over raw performance -- after all, this serves as a test code.
Note
A link that provides detailed code documentation for ASC2D can be found here.
-
For documentation, please refer to the documentation provided.
-
An example folder with pre-defined test-cases is found here.
-
Additional tools for post-processing are found here.
-
A Github Pages website is available for the current project documentation via this link.
-
This has been tested on Ubuntu 20.04 and 22.04 and CentOS Linux 7.9.2009 (Core).
-
The GNU gcc compiler has to be version 8 or higher.
-
The
C++standard uses the-std=c++17flag, but might also work with-std=c++11. -
In order to compile the code, the Make build utility is required.
-
During compilation and running, the Eigen library is needed.
-
In order to run in parallel (via shared memory), an OpenMP library must be available.
-
For visualizing the solution, the open-source visualization software ParaView is recommended.
-
To download, clone this repository via:
git clone https://github.com/inquisitor101/ASC2D -
To set-up the Eigen library submodule, run:
git submodule initfollowed by:git submodule update -
To install, enter
asc/and run:make -
To run any test case, make sure to create the below eight directories:
data/ anim/ proc/ logs/ gnuplot/ surf/ zone/ init/
-
To specify the number of threads/cores (
nThreads), use:export OMP_NUM_THREADS=nThreads -
To run the solver, use:
/path/to/executable/ACS3 paramDict.cfg > logs/info.log 2>&1 & -
To clean the simulation directory, simply execute:
./sweeper.clean -
... and most importantly: HAVE FUN ! ! !
-
Every time this code gets updated, it auto compiles and generates documentation via GitHub Actions.
-
The workflow in the Github Actions can be seen here.
-
This code uses Doxygen to generate documentation.
-
A default Doxygen configuration file is provided in
asc/Doxyfile. -
In order to generate the code documentation locally, do the following:
- Go to the project root directory:
ASC2D/ - Run the Doxygen command:
doxygen asc/Doxyfile - The documentation can be accessed as a html file in:
doc/html/index.html
- Go to the project root directory: