25 #include "grins_config.h"
37 #include "libmesh/getpot.h"
38 #include "libmesh/string_to_enum.h"
39 #include "libmesh/fem_system.h"
46 _flow_vars(input,
PhysicsNaming::incompressible_navier_stokes()),
47 _press_var(input,
PhysicsNaming::incompressible_navier_stokes(), true ),
60 "ReferenceTemperature",
66 "ThermalExpansionCoeff",
98 this->
_dim = system->get_mesh().mesh_dimension();
108 const std::string& old_option,
109 const std::string& property,
110 libMesh::Real& value )
117 "Materials/"+material+
"/"+property+
"/value" );
120 if( input.have_variable(old_option) )
129 else if( input.have_variable(
"Materials/"+material+
"/"+property+
"/value" ) )
133 "Materials/"+material+
"/"+property+
"/value", 0.0 );
143 (value, input, old_option, 1.0 );
149 libmesh_error_msg(
"ERROR: Detected non-positive "+property+
"!");
154 const std::string& old_option,
155 const std::string& material,
156 const std::string& property )
161 warning =
"WARNING: Neither "+old_option+
"\n";
162 warning +=
" nor a material_name was detected in input\n";
163 warning +
" "+
property+
" is defaulting to 1.0. This behavior is DEPRECATED!\n";
164 warning +=
" Please update to use Material/MATERIAL_NAME/"+
property+
"/value\n";
168 warning =
"WARNING: Neither "+old_option+
"\n";
169 warning +=
" nor Material/"+material+
"/"+
property+
"/value\n";
170 warning +
" "+
property+
" is defaulting to 1.0. This behavior is DEPRECATED!\n";
171 warning +=
" Please update to use Material/MATERIAL_NAME/"+
property+
"/value\n";
virtual void set_parameter(libMesh::Number ¶m_variable, const GetPot &input, const std::string ¶m_name, libMesh::Number param_default)
Each subclass can simultaneously read a parameter value from.
virtual void init(libMesh::FEMSystem *system)
Add variables to the system.
void read_property(const GetPot &input, const std::string &old_option, const std::string &property, libMesh::Real &value)
Helper function for parsing/maintaing backward compatibility.
libMesh::Point _g
Gravitational vector.
virtual void init_variables(libMesh::FEMSystem *system)
Initialization of BoussinesqBuoyancy variables.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
unsigned int _dim
Physical dimension of problem.
static std::string temperature_section()
#define grins_warning(message)
virtual void init(libMesh::FEMSystem *system)
Add variables to the system.
~BoussinesqBuoyancyBase()
static void check_and_register_variable(const std::string &var_name, const FEVariablesBase &variable)
First check if var_name is registered and then register.
PressureFEVariable _press_var
static std::string velocity_section()
libMesh::Number _T_ref
reference temperature
static std::string pressure_section()
static PhysicsName boussinesq_buoyancy()
void no_input_warning(const GetPot &input, const std::string &old_option, const std::string &material, const std::string &property)
Helper function for parsing/maintaing backward compatibility.
static void dep_input_warning(const std::string &old_option, const std::string &property)
Helper function for parsing/maintaing backward compatibility.
VelocityFEVariables _flow_vars
static void duplicate_input_test(const GetPot &input, const std::string &option1, const std::string &option2)
Helper function for parsing/maintaing backward compatibility.
void register_variables()
static std::string material_name(const GetPot &input, const std::string &physics)
Get the name of the material in the Physics/physics section.
libMesh::Number _beta_T
coefficient of thermal expansion
libMesh::Number _rho
density
static bool have_material(const GetPot &input, const std::string &physics)
Check if Physics/physics section has a material variable.
PrimitiveTempFEVariables _temp_vars