1 #ifndef SRC_MICROPHYSICS_MICROPHYSICS_HPP_
2 #define SRC_MICROPHYSICS_MICROPHYSICS_HPP_
10 #include <athena/athena.hpp>
50 std::shared_ptr<MicrophysicalSchemeBase>
GetSystem(
int i)
const {
70 std::vector<std::shared_ptr<MicrophysicalSchemeBase>>
systems_;
std::vector< AirParcel > AirColumn
virtual base class for all microphysical schemes
root-level management class for microphysics
AthenaArray< Real > w
primitive variables: mass fraction [kg/kg]
void SetVsedFromConserved(Hydro const *phydro)
inbound functions
Microphysics(MeshBlock *pmb, ParameterInput *pin)
constructor and destructor
std::vector< std::shared_ptr< MicrophysicalSchemeBase > > systems_
pointers of microphysical systems
AthenaArray< Real > u
conserved variables: mass concentration [kg/m^3]
static const std::string input_key
microphysics input key in the input file [microphysics_config]
MeshBlock const * pmy_block_
meshblock pointer
AthenaArray< Real > vsed_[3]
sedimentation velocity at cell center [m/s]
size_t GetNumSystems() const
functions
void EvolveSystems(AirColumn &ac, Real time, Real dt)
Evolve all microphysical systems.
AthenaArray< Real > mass_flux[3]
mass flux of the dry fluid [kg/m^2/s]
AthenaArray< Real > vsedf[3]
sedimentation velocity at cell interface [m/s]
std::shared_ptr< MicrophysicalSchemeBase > GetSystem(int i) const
std::shared_ptr< Microphysics > MicrophysicsPtr
bool microphysics_set_mass_flux(MeshBlock *pmb, IntegrationStage stage)
bool hydro_calculate_flux(MeshBlock *pmb, IntegrationStage stage)
bool microphysics_evolve_system(MeshBlock *pmb, IntegrationStage stage)
bool scalar_calculate_flux(MeshBlock *pmb, IntegrationStage stage)
bool hydro_implicit_correction(MeshBlock *pmb, IntegrationStage stage)
bool microphysics_set_sedimentaton_velocity(MeshBlock *pmb, IntegrationStage stage)
std::pair< int, int > IntegrationStage