Centrally managed & adjustable simulation parameters
Create a dataclass Params
which is used to store all relevant simulation parameters. The parameters can be read in from a YAML file (or from a dictionary, or created manually). The subsolvers use the fields in Params
to read in simulation settings. The settings are also used to generate a preCICE configuration file.
The PR also adds a script to run a coupled simulation. This should be used instead of calling ground.py
and river.py
separately as before. Soil types are now abstracted into a SoilType
enum. This can become a proper dataclass later, s.th. material parameters do not have to be part of long if-clauses in Ground
.
I also got rid a of a bunch of duplicate, but partly unused, code in the River and Groundwater solvers.
Open ToDos
-
update README to explain new code behavior
Closes #1 (closed)