Skip to content

A two-dimensional nodal discontinuous Galerkin solver for the non-linear Euler equations with different boundary conditions.

License

Notifications You must be signed in to change notification settings

inquisitor101/ASC2D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASC2D

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.

Some Useful Information

  • 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.

Some Relevant Notes

  • 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++17 flag, 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.

In a Nutshell

  • To download, clone this repository via: git clone https://github.com/inquisitor101/ASC2D

  • To set-up the Eigen library submodule, run: git submodule init followed 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 ! ! !

Final Remarks

  • 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