42 template<
template<
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 libMesh::UniquePtr<Physics> new_physics;
53 if( conductivity ==
"constant" )
54 new_physics.reset(
new DerivedPhysics<ConstantConductivity>(physics_name,input) );
56 else if( conductivity ==
"parsed" )
57 new_physics.reset(
new DerivedPhysics<ParsedConductivity>(physics_name,input) );
60 this->cond_error_msg(physics_name, conductivity);
62 libmesh_assert(new_physics);
67 template<
template<
typename>
class DerivedPhysics>
69 const std::string& conductivity )
const
71 std::string error =
"================================================================\n";
72 error +=
"Invalid conductivity model for "+physics+
"\n";
73 error +=
"Conductivity model = "+conductivity+
"\n";
74 error +=
"================================================================\n";
76 libmesh_error_msg(error);
static PhysicsName heat_transfer_adjoint_stab()
static PhysicsName heat_transfer()
static PhysicsName heat_transfer_spgsm_stab()
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)
void cond_error_msg(const std::string &physics, const std::string &conductivity) const
PhysicsFactoryHeatTransfer< HeatConduction > grins_factory_heat_conduction(PhysicsNaming::heat_conduction(), PhysicsNaming::heat_conduction())
PhysicsFactoryHeatTransfer< HeatTransfer > grins_factory_heat_transfer(PhysicsNaming::heat_transfer(), PhysicsNaming::heat_transfer())
static void parse_conductivity_model(const GetPot &input, const std::string &physics, std::string &model)
Determine conductivity model based on given physics name.
PhysicsFactoryHeatTransfer< AxisymmetricHeatTransfer > grins_factory_axi_heat_transfer(PhysicsNaming::axisymmetric_heat_transfer(), PhysicsNaming::axisymmetric_heat_transfer())
PhysicsFactoryHeatTransfer< HeatTransferAdjointStabilization > grins_factory_heat_transfer_adjoint_stab(PhysicsNaming::heat_transfer_adjoint_stab(), PhysicsNaming::heat_transfer())
static PhysicsName axisymmetric_heat_transfer()
PhysicsFactoryHeatTransfer< HeatTransferAdjointStabilization > grins_factory_heat_transfer_spgsm_stab(PhysicsNaming::heat_transfer_spgsm_stab(), PhysicsNaming::heat_transfer())
static PhysicsName heat_conduction()