This repository is a centralized location for all Clawpack-compatible Riemann solvers. If you have developed a Riemann solver that is not already here, please send it to us or issue a pull request. The format for Riemann solvers has changed significantly since Clawpack 4.3, but if you have a 4.3-style solver, send it along and we will update it.
When adding a new Riemann solver, in addition to adding the normal and
(optionally) transverse solver code files in src/, you should do the following
in order to ensure the new solver is importable in PyClaw. To make things
concrete, suppose you are committing a 2D elasticity solver, so your Fortran
files are named rpn2_elasticity.f90
and rpt2_elasticity.f90
. Then you should:
- Add the following to
clawpack/riemann/riemann/__init__.py
:
import vc_elasticity_2D
- Add
vc_elasticity
totwo_d_riemann
inclawpack/riemann/riemann/setup.py
. - Add appropriate entries for
num_eqn
andnum_waves
inclawpack/riemann/riemann/static.py
.
If you are adding a Python solver, then you should have a vc_elasticity_2D_py.py
file in clawpack/riemann/riemann
. Assuming it contains a function vc_elasticity_2D
, then
you should do:
- Add the following to
clawpack/riemann/riemann/__init__.py
:
from vc_elasticity_2D_py import vc_elasticity_2D
- Add appropriate entries for
num_eqn
andnum_waves
inclawpack/riemann/riemann/static.py
.