42 template<
template<
typename,
typename,
typename>
class DerivedPhysics>
44 const std::string& physics_name )
46 std::string core_physics = this->find_core_physics_name(physics_name);
48 std::string conductivity;
51 std::string viscosity;
54 std::string specific_heat;
57 libMesh::UniquePtr<Physics> new_physics;
59 if( conductivity ==
"constant" && viscosity ==
"constant" && specific_heat ==
"constant" )
60 new_physics.reset(
new DerivedPhysics<ConstantViscosity,ConstantSpecificHeat,ConstantConductivity>
61 (physics_name,input) );
64 this->prop_error_msg(physics_name, conductivity, viscosity, specific_heat);
66 libmesh_assert(new_physics);
71 template<
template<
typename,
typename,
typename>
class DerivedPhysics>
73 const std::string& conductivity,
74 const std::string& viscosity,
75 const std::string& specific_heat )
const
77 std::string error =
"================================================================\n";
78 error +=
"Invalid combination of models for "+physics+
"\n";
79 error +=
"Viscosity model = "+viscosity+
"\n";
80 error +=
"Conductivity model = "+conductivity+
"\n";
81 error +=
"Specific heat model = "+specific_heat+
"\n";
82 error +=
"================================================================\n";
84 libmesh_error_msg(error);
static void parse_viscosity_model(const GetPot &input, const std::string &physics, std::string &model)
Determine viscosity model based on given physics name.
PhysicsFactoryVariableDensityFlow< LowMachNavierStokes > grins_factory_low_mach_navier_stokes(PhysicsNaming::low_mach_navier_stokes(), PhysicsNaming::low_mach_navier_stokes())
PhysicsFactoryVariableDensityFlow< LowMachNavierStokesBraackStabilization > grins_factory_lmns_braack_stab(PhysicsNaming::low_mach_navier_stokes_braack_stab(), PhysicsNaming::low_mach_navier_stokes())
static PhysicsName low_mach_navier_stokes_braack_stab()
static PhysicsName low_mach_navier_stokes()
void prop_error_msg(const std::string &physics, const std::string &conductivity, const std::string &viscosity, const std::string &specific_heat) const
static void parse_conductivity_model(const GetPot &input, const std::string &physics, std::string &model)
Determine conductivity model based on given physics name.
static PhysicsName low_mach_navier_stokes_spgsm_stab()
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)
PhysicsFactoryVariableDensityFlow< LowMachNavierStokesVMSStabilization > grins_factory_lmns_vms_stab(PhysicsNaming::low_mach_navier_stokes_vms_stab(), PhysicsNaming::low_mach_navier_stokes())
PhysicsFactoryVariableDensityFlow< LowMachNavierStokesSPGSMStabilization > grins_factory_lmns_spgsm_stab(PhysicsNaming::low_mach_navier_stokes_spgsm_stab(), PhysicsNaming::low_mach_navier_stokes())
static PhysicsName low_mach_navier_stokes_vms_stab()
static void parse_specific_heat_model(const GetPot &input, const std::string &physics, std::string &model)
Determine specific heat model based on given physics name.