39 #include "libmesh/utility.h" 
   40 #include "libmesh/string_to_enum.h" 
   41 #include "libmesh/getpot.h" 
   42 #include "libmesh/fem_system.h" 
   48                                                                      const std::string& core_physics_name,
 
   50     : 
Physics(my_physics_name, input),
 
   51       _flow_vars(input, core_physics_name),
 
   52       _press_var(input, core_physics_name, true ),
 
   72     this->_dim = system->get_mesh().mesh_dimension();
 
   74     this->_flow_vars.init(system);
 
   75     this->_press_var.init(system);
 
   77     this->_mu.init(system);
 
   85     return this->_mu(context, qp);
 
   91     const unsigned int dim = system->get_mesh().mesh_dimension();
 
   95     system->time_evolving(_flow_vars.u());
 
   96     system->time_evolving(_flow_vars.v());
 
   99       system->time_evolving(_flow_vars.w());
 
  110     context.get_element_fe(_flow_vars.u())->get_JxW();
 
  111     context.get_element_fe(_flow_vars.u())->get_phi();
 
  112     context.get_element_fe(_flow_vars.u())->get_dphi();
 
  113     context.get_element_fe(_flow_vars.u())->get_xyz();
 
  115     context.get_element_fe(_press_var.p())->get_phi();
 
  116     context.get_element_fe(_press_var.p())->get_xyz();
 
  118     context.get_side_fe(_flow_vars.u())->get_JxW();
 
  119     context.get_side_fe(_flow_vars.u())->get_phi();
 
  120     context.get_side_fe(_flow_vars.u())->get_dphi();
 
  121     context.get_side_fe(_flow_vars.u())->get_xyz();
 
  128     ( 
const std::string & param_name,
 
  133     _mu.register_parameter(param_name, param_pointer);
 
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. 
 
void register_variables()
 
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem. 
 
libMesh::Number _rho
Material parameters, read from input. 
 
IncompressibleNavierStokesBase()
 
static void check_and_register_variable(const std::string &var_name, const FEVariablesBase &variable)
First check if var_name is registered and then register. 
 
libMesh::Real get_viscosity_value(AssemblyContext &context, unsigned int qp) const 
 
virtual void init_variables(libMesh::FEMSystem *system)
Initialization of Navier-Stokes variables. 
 
static void read_density(const std::string &core_physics_name, const GetPot &input, ParameterUser ¶ms, libMesh::Real &rho)
Helper function to reading density from input. 
 
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables. 
 
static std::string velocity_section()
 
Helper functions for parsing material properties. 
 
static std::string pressure_section()
 
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving. 
 
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. 
 
INSTANTIATE_INC_NS_SUBCLASS(IncompressibleNavierStokesBase)