53 template<
template<
typename>
class DerivedPhysics>
55 const std::string& physics_name )
57 std::string core_physics = this->find_core_physics_name(physics_name);
59 std::string viscosity;
62 libMesh::UniquePtr<Physics> new_physics;
64 if( viscosity ==
"constant" )
65 new_physics.reset(
new DerivedPhysics<ConstantViscosity>(physics_name,input) );
67 else if( viscosity ==
"parsed" )
68 new_physics.reset(
new DerivedPhysics<ParsedViscosity>(physics_name,input) );
71 else if( viscosity ==
"spalartallmaras" )
73 std::string turb_viscosity;
75 if( turb_viscosity ==
"constant" )
78 this->visc_error_msg(physics_name, turb_viscosity);
81 this->visc_error_msg(physics_name, viscosity);
83 libmesh_assert(new_physics);
88 template<
template<
typename>
class DerivedPhysics>
90 const std::string& viscosity )
const
92 std::string error =
"================================================================\n";
93 error +=
"Invalid viscosity model for "+physics+
"\n";
94 error +=
"Viscosity model = "+viscosity+
"\n";
95 error +=
"================================================================\n";
97 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.
static PhysicsName velocity_penalty_adjoint_stab()
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)
PhysicsFactoryIncompressibleFlow< VelocityDrag > grins_factory_velocity_drag(PhysicsNaming::velocity_drag(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName boussinesq_buoyancy_adjoint_stab()
PhysicsFactoryIncompressibleFlow< BoussinesqBuoyancySPGSMStabilization > grins_factory_boussinesq_spgsm_stab(PhysicsNaming::boussinesq_buoyancy_spgsm_stab(), PhysicsNaming::boussinesq_buoyancy())
static PhysicsName boussinesq_buoyancy_spgsm_stab()
static PhysicsName averaged_fan()
static PhysicsName parsed_velocity_source()
PhysicsFactoryIncompressibleFlow< IncompressibleNavierStokesAdjointStabilization > grins_factory_ins_adjoint_stab(PhysicsNaming::incompressible_navier_stokes_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName velocity_drag_adjoint_stab()
static PhysicsName incompressible_navier_stokes_adjoint_stab()
static PhysicsName velocity_penalty3_adjoint_stab()
PhysicsFactoryIncompressibleFlow< IncompressibleNavierStokes > grins_factory_incompressible_navier_stokes(PhysicsNaming::incompressible_navier_stokes(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName velocity_drag()
PhysicsFactoryIncompressibleFlow< VelocityPenalty > grins_factory_vel_penalty2(PhysicsNaming::velocity_penalty2(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName parsed_velocity_source_adjoint_stab()
PhysicsFactoryIncompressibleFlow< VelocityPenaltyAdjointStabilization > grins_factory_vel_penalty3_adjoint_stab(PhysicsNaming::velocity_penalty3_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
PhysicsFactoryIncompressibleFlow< VelocityDragAdjointStabilization > grins_factory_velocity_drag_adjoint_stab(PhysicsNaming::velocity_drag_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
PhysicsFactoryIncompressibleFlow< VelocityPenalty > grins_factory_vel_penalty3(PhysicsNaming::velocity_penalty3(), PhysicsNaming::incompressible_navier_stokes())
PhysicsFactoryIncompressibleFlow< VelocityPenaltyAdjointStabilization > grins_factory_vel_penalty_adjoint_stab(PhysicsNaming::velocity_penalty_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName velocity_penalty()
static PhysicsName velocity_penalty2()
PhysicsFactoryIncompressibleFlow< AveragedFanAdjointStabilization > grins_factory_averaged_fan_adjoint_stab(PhysicsNaming::averaged_fan_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName boussinesq_buoyancy()
PhysicsFactoryIncompressibleFlow< AveragedFan > grins_factory_averaged_fan(PhysicsNaming::averaged_fan(), PhysicsNaming::incompressible_navier_stokes())
PhysicsFactoryIncompressibleFlow< ParsedVelocitySource > grins_factory_parsed_vel_source(PhysicsNaming::parsed_velocity_source(), PhysicsNaming::incompressible_navier_stokes())
void visc_error_msg(const std::string &physics, const std::string &viscosity) const
PhysicsFactoryIncompressibleFlow< BoussinesqBuoyancyAdjointStabilization > grins_factory_boussinesq_adjoint_stab(PhysicsNaming::boussinesq_buoyancy_adjoint_stab(), PhysicsNaming::boussinesq_buoyancy())
PhysicsFactoryIncompressibleFlow< AveragedTurbine > grins_factory_averaged_turbine(PhysicsNaming::averaged_turbine(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName averaged_turbine()
static PhysicsName incompressible_navier_stokes()
PhysicsFactoryIncompressibleFlow< ParsedVelocitySourceAdjointStabilization > grins_factory_parsed_vel_source_adjoint_stab(PhysicsNaming::parsed_velocity_source_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName stokes()
PhysicsFactoryIncompressibleFlow< VelocityPenaltyAdjointStabilization > grins_factory_vel_penalty2_adjoint_stab(PhysicsNaming::velocity_penalty2_adjoint_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName velocity_penalty2_adjoint_stab()
PhysicsFactoryIncompressibleFlow< IncompressibleNavierStokesSPGSMStabilization > grins_factory_spsgm_adjoint_stab(PhysicsNaming::incompressible_navier_stokes_spgsm_stab(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName averaged_fan_adjoint_stab()
PhysicsFactoryIncompressibleFlow< VelocityPenalty > grins_factory_vel_penalty(PhysicsNaming::velocity_penalty(), PhysicsNaming::incompressible_navier_stokes())
static PhysicsName velocity_penalty3()
static void parse_turb_viscosity_model(const GetPot &input, const std::string &physics, std::string &model)
Determine viscosity model used by turblence classes.
PhysicsFactoryIncompressibleFlow< Stokes > grins_factory_stokes(PhysicsNaming::stokes(), PhysicsNaming::stokes())
static PhysicsName incompressible_navier_stokes_spgsm_stab()