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)