Source code for astronomix.option_classes.simulation_params
from typing import NamedTuple
import jax.numpy as jnp
from astronomix._physics_modules._cnn_mhd_corrector._cnn_mhd_corrector_options import CNNMHDconfig
from astronomix._physics_modules._cooling.cooling_options import CoolingParams
from astronomix._physics_modules._cosmic_rays.cosmic_ray_options import CosmicRayParams
from astronomix._physics_modules._neural_net_force._neural_net_force_options import NeuralNetForceParams
from astronomix._physics_modules._stellar_wind.stellar_wind_options import WindParams
from astronomix._physics_modules._turbulent_forcing._turbulent_forcing_options import TurbulentForcingParams
[docs]
class SimulationParams(NamedTuple):
"""
Different from the simulation configuration, the simulation parameters
do not require recompilation when changed. The simulation can be
differentiated with respect to them.
"""
#: The Courant-Friedrichs-Lewy number, a factor
#: in the time step calculation.
C_cfl: float = 0.4
#: Gravitational constant.
gravitational_constant: float = 1.0
#: The adiabatic index of the gas.
gamma: float = 5/3
#: Minimum allowed density.
#: NOTE: CURRENTLY ONLY USED IN
#: FINITE DIFFERENCE MODE IF
#: config.enforce_positivity IS TRUE.
minimum_density: float = 1e-14
#: Minimum allowed pressure.
#: NOTE: CURRENTLY ONLY USED IN
#: FINITE DIFFERENCE MODE IF
#: config.enforce_positivity IS TRUE.
minimum_pressure: float = 1e-14
#: The maximum time step.
dt_max: float = 0.001
#: The final time of the simulation.
t_end: float = 0.2
#: Snapshot timepoints
snapshot_timepoints: jnp.array = jnp.array([0.0])
# parameters of physics modules
#: The parameters of the turbulent forcing module.
turbulent_forcing_params: TurbulentForcingParams = TurbulentForcingParams()
#: The parameters of the stellar wind module.
wind_params: WindParams = WindParams()
#: Cosmic ray parameters
cosmic_ray_params: CosmicRayParams = CosmicRayParams()
#: The parameters of the cooling module.
cooling_params: CoolingParams = CoolingParams()
#: The parameters of the neural network force module.
neural_net_force_params: NeuralNetForceParams = NeuralNetForceParams()
#: The parameters of the CNN MHD corrector module.
cnn_mhd_corrector_params: CNNMHDconfig = CNNMHDconfig()