40 #include "libmesh/getpot.h"
41 #include "libmesh/string_to_enum.h"
42 #include "libmesh/fem_system.h"
47 template<
class Mu,
class SH,
class TC>
49 const std::string& core_physics_name,
76 template<
class Mu,
class SH,
class TC>
82 "ThermodynamicPressure",
89 "ReferenceTemperature",
115 template<
class Mu,
class SH,
class TC>
118 const unsigned int dim = system->get_mesh().mesh_dimension();
120 system->time_evolving(_flow_vars.u(), 1);
123 system->time_evolving(_flow_vars.v(), 1);
126 system->time_evolving(_flow_vars.w(), 1);
128 system->time_evolving(_temp_vars.T(), 1);
129 system->time_evolving(_press_var.p(), 1);
131 if( _enable_thermo_press_calc )
132 system->time_evolving(_p0_var->p0(), 1);
135 template<
class Mu,
class SH,
class TC>
141 context.get_element_fe(_flow_vars.u())->get_JxW();
142 context.get_element_fe(_flow_vars.u())->get_phi();
143 context.get_element_fe(_flow_vars.u())->get_dphi();
144 context.get_element_fe(_flow_vars.u())->get_xyz();
146 context.get_element_fe(_temp_vars.T())->get_JxW();
147 context.get_element_fe(_temp_vars.T())->get_phi();
148 context.get_element_fe(_temp_vars.T())->get_dphi();
149 context.get_element_fe(_temp_vars.T())->get_xyz();
151 context.get_element_fe(_press_var.p())->get_phi();
152 context.get_element_fe(_press_var.p())->get_xyz();
155 template<
class Mu,
class SH,
class TC>
157 (
const std::string & param_name,
162 _mu.register_parameter(param_name, param_pointer);
163 _cp.register_parameter(param_name, param_pointer);
164 _k.register_parameter(param_name, param_pointer);
LowMachNavierStokesBase()
void read_input_options(const GetPot &input)
Read options from GetPot input file.
ThermoPressureVariable * _p0_var
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
void check_var_subdomain_consistency(const FEVariablesBase &var) const
Check that var is enabled on at least the subdomains this Physics is.
static PhysicsName low_mach_navier_stokes()
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation.
PressureFEVariable & _press_var
PrimitiveTempFEVariables & _temp_vars
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.
VelocityVariable & _flow_vars
Helper functions for parsing material properties.
Physics class for Incompressible Navier-Stokes.
static void read_property(const GetPot &input, const std::string &old_option, const std::string &property, const std::string &core_physics, ParameterUser ¶m_user, libMesh::Real &value)
Helper function for parsing/maintaing backward compatibility.
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables.
void set_is_constraint_var(bool is_constraint_var)
Set whether or not this is a "constraint" variable.
virtual void register_parameter(const std::string ¶m_name, libMesh::ParameterMultiAccessor< libMesh::Number > ¶m_pointer) const
Each subclass will register its copy of an independent.
virtual void register_parameter(const std::string ¶m_name, libMesh::ParameterMultiAccessor< libMesh::Number > ¶m_pointer) const
Each subclass will register its copy of an independent.
static std::string thermo_press_variable_name(const GetPot &input, const std::string &subsection_name, const SECTION_TYPE section_type)