NCM Workshop on Numerical Methods for PDE
The workshop will be held during 16–27 December 2024 at IIPE, Visakhapatnam.
https://www.atmschools.org/school/2024/NCMW/nmpde
I will be giving some lectures on Discontinuous Galerkin methods for conservation laws. This page gives some resources for attending these lectures.
Codes for lectures
The codes will be written in C++ using deal.II library. The codes can be read here: fem
Download them using git
git clone https://github.com/cpraveen/fem
Many of these codes are still being made and updated, so you should download them frequently to get the latest version. E.g., using git
cd fem
git pull
The DG codes are in the sub-directories dg1d
and dg2d
. See the readme files and follow the instructions.
Installing deal.II
For optimal experience, use Linux or MacOS; if you are on Windows, then you must install WSL, and install/work inside that.
You must have deal.II installed and working in order to run these codes. Instructions on how to install are given here
For most users, it is recommended to use Docker or the “Automated installation” process. Expert users can consider installation using spack.
If you use Docker, you can also install deal.II through that which gives you a full installation of deal.II with all external dependencies.
Other softwares
We will need some visualization softwares and you should install the following
- Gnuplot: install using your package manager like apt
- Gmsh: used for generating unstructured grids
- VisIt: used to visualize solutions
- ParaView: another software to visualize solutions
- pyvista: Python based visualization software
Learning C++ and deal.II
The example codes are in C++ and use many things like classes, templates, inheritence, etc. So a good knowledge of C++ is necessary to understand these codes. The following books are good resources for learning C++:
- Bjarne Stroustrup, A Tour of C++
- Peter Gottschling, Discovering Modern C++: An Intensive Course for Scientists, Engineers and Programmers
In addition, the deal.II tutorials have an excellent description of both FEM and C++, and you will benefit by studying a few of the initial steps.