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),
67 return this->_mu(context, qp);
73 const unsigned int dim = system->get_mesh().mesh_dimension();
77 system->time_evolving(_flow_vars.u(), 1);
80 system->time_evolving(_flow_vars.v(), 1);
83 system->time_evolving(_flow_vars.w(), 1);
92 context.get_element_fe(_flow_vars.u())->get_JxW();
93 context.get_element_fe(_flow_vars.u())->get_phi();
94 context.get_element_fe(_flow_vars.u())->get_dphi();
95 context.get_element_fe(_flow_vars.u())->get_xyz();
97 context.get_element_fe(_press_var.p())->get_phi();
98 context.get_element_fe(_press_var.p())->get_xyz();
100 context.get_side_fe(_flow_vars.u())->get_JxW();
101 context.get_side_fe(_flow_vars.u())->get_phi();
102 context.get_side_fe(_flow_vars.u())->get_dphi();
103 context.get_side_fe(_flow_vars.u())->get_xyz();
108 (
const std::string & param_name,
113 _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.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
libMesh::Number _rho
Material parameters, read from input.
IncompressibleNavierStokesBase()
void check_var_subdomain_consistency(const FEVariablesBase &var) const
Check that var is enabled on at least the subdomains this Physics is.
VelocityVariable & _flow_vars
libMesh::Real get_viscosity_value(AssemblyContext &context, unsigned int qp) const
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.
PressureFEVariable & _press_var
Helper functions for parsing material properties.
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Sets velocity variables to be time-evolving.
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.
INSTANTIATE_INC_NS_SUBCLASS(IncompressibleNavierStokesBase)