30 using Tscal = shambase::VecComponent<Tvec>;
31 static constexpr u32 dim = shambase::VectorProperties<Tvec>::dimension;
32 using Kernel = SPHKernel<Tscal>;
38 Config &solver_config;
41 UpdateDerivs(
ShamrockCtx &context, Config &solver_config, Storage &storage)
42 : context(context), solver_config(solver_config), storage(storage) {}
44 void update_derivs(Tscal dt_hydro);
51 using None =
typename Cfg_AV::None;
52 using Constant =
typename Cfg_AV::Constant;
53 using VaryingMM97 =
typename Cfg_AV::VaryingMM97;
54 using VaryingCD10 =
typename Cfg_AV::VaryingCD10;
55 using ConstantDisc =
typename Cfg_AV::ConstantDisc;
57 void update_derivs_noAV(None cfg);
58 void update_derivs_constantAV(Constant cfg);
59 void update_derivs_mm97(VaryingMM97 cfg);
60 void update_derivs_cd10(VaryingCD10 cfg);
61 void update_derivs_disc_visco(ConstantDisc cfg);
63 using DustConfig =
typename Config::DustConfig;
65 void update_derivs_dust_monofluid_tvi_Sj(DustConfig cfg, Tscal dt_hydro);
67 using Cfg_MHD =
typename Config::MHDConfig;
69 using NoneMHD =
typename Cfg_MHD::None;
70 using IdealMHD =
typename Cfg_MHD::IdealMHD_constrained_hyper_para;
71 using NonIdealMHD =
typename Cfg_MHD::NonIdealMHD;
73 void update_derivs_MHD(IdealMHD cfg);
T & get_check_ref(const std::unique_ptr< T > &ptr, SourceLocation loc=SourceLocation())
Takes a std::unique_ptr and returns a reference to the object it holds. It throws a std::runtime_erro...