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,
 
   52       _flow_vars(input, core_physics_name),
 
   53       _press_var(input,core_physics_name, true ),
 
   54       _temp_vars(input, core_physics_name),
 
   67   template<
class Mu, 
class SH, 
class TC>
 
   76     if( this->_enable_thermo_press_calc )
 
   81   template<
class Mu, 
class SH, 
class TC>
 
   87                                      "ThermodynamicPressure",
 
   94                                      "ReferenceTemperature",
 
  118   template<
class Mu, 
class SH, 
class TC>
 
  122     this->_dim = system->get_mesh().mesh_dimension();
 
  124     this->_flow_vars.init(system);
 
  125     this->_press_var.init(system);
 
  126     this->_temp_vars.init(system);
 
  130     if( _enable_thermo_press_calc )
 
  131       _p0_var->init(system);
 
  136   template<
class Mu, 
class SH, 
class TC>
 
  139     const unsigned int dim = system->get_mesh().mesh_dimension();
 
  141     system->time_evolving(_flow_vars.u());
 
  142     system->time_evolving(_flow_vars.v());
 
  145       system->time_evolving(_flow_vars.w());
 
  147     system->time_evolving(_temp_vars.T());
 
  148     system->time_evolving(_press_var.p());
 
  150     if( _enable_thermo_press_calc )
 
  151       system->time_evolving(_p0_var->p0());
 
  156   template<
class Mu, 
class SH, 
class TC>
 
  162     context.get_element_fe(_flow_vars.u())->get_JxW();
 
  163     context.get_element_fe(_flow_vars.u())->get_phi();
 
  164     context.get_element_fe(_flow_vars.u())->get_dphi();
 
  165     context.get_element_fe(_flow_vars.u())->get_xyz();
 
  167     context.get_element_fe(_temp_vars.T())->get_JxW();
 
  168     context.get_element_fe(_temp_vars.T())->get_phi();
 
  169     context.get_element_fe(_temp_vars.T())->get_dphi();
 
  170     context.get_element_fe(_temp_vars.T())->get_xyz();
 
  172     context.get_element_fe(_press_var.p())->get_phi();
 
  173     context.get_element_fe(_press_var.p())->get_xyz();
 
  178   template<
class Mu, 
class SH, 
class TC>
 
  180     ( 
const std::string & param_name,
 
  185     _mu.register_parameter(param_name, param_pointer);
 
  186     _cp.register_parameter(param_name, param_pointer);
 
  187     _k.register_parameter(param_name, param_pointer);
 
LowMachNavierStokesBase()
 
void read_input_options(const GetPot &input)
Read options from GetPot input file. 
 
libMesh::UniquePtr< ThermoPressureFEVariable > _p0_var
 
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem. 
 
static std::string temperature_section()
 
static PhysicsName low_mach_navier_stokes()
 
bool _enable_thermo_press_calc
Flag to enable thermodynamic pressure calculation. 
 
virtual void init_variables(libMesh::FEMSystem *system)
Initialize variables for this physics. 
 
static void check_and_register_variable(const std::string &var_name, const FEVariablesBase &variable)
First check if var_name is registered and then register. 
 
void register_variables()
 
static std::string velocity_section()
 
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving. 
 
Helper functions for parsing material properties. 
 
static std::string thermo_pressure_section()
 
static std::string pressure_section()
 
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. 
 
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.