60 void add(
const std::string & var_name, std::shared_ptr<MooseVariableBase> var);
83 const std::set<BoundaryID> & boundary_ids,
84 const std::unordered_map<std::string, std::vector<MooseVariableFieldBase *>> &
vars);
109 template <
typename T>
121 template <
typename T>
128 template <
typename T>
134 template <
typename T>
141 template <
typename T>
148 const std::vector<VariableName> &
names()
const;
154 const std::vector<MooseVariableFieldBase *> &
fieldVariables()
const;
167 const std::vector<MooseVariableScalar *> &
scalars()
const;
217 const std::map<unsigned int, std::shared_ptr<MooseVariableBase>> &
numberToVariableMap()
const;
224 std::vector<MooseVariableFieldBase *>
_vars;
266 std::map<unsigned int, std::shared_ptr<MooseVariableBase>>
_all_objects;
277 " doesn't exist as a finite volume variable in the warehouse.");
282inline const std::map<unsigned int, std::shared_ptr<MooseVariableBase>> &
290VariableWarehouse::getFieldVariable<RealVectorValue>(
const std::string & var_name);
294VariableWarehouse::getFieldVariable<RealVectorValue>(
unsigned int var_number);
298VariableWarehouse::getFieldVariable<RealEigenVector>(
const std::string & var_name);
302VariableWarehouse::getFieldVariable<RealEigenVector>(
unsigned int var_number);
306VariableWarehouse::getActualFieldVariable<RealVectorValue>(
const std::string & var_name);
310VariableWarehouse::getActualFieldVariable<RealVectorValue>(
unsigned int var_number);
314VariableWarehouse::getActualFieldVariable<RealEigenVector>(
const std::string & var_name);
318VariableWarehouse::getActualFieldVariable<RealEigenVector>(
unsigned int var_number);
boundary_id_type BoundaryID
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
MooseVariableFE< Real > MooseVariable
MooseVariableFE< RealEigenVector > ArrayMooseVariable
MooseVariableFV< Real > MooseVariableFVReal
MooseLinearVariableFV< Real > MooseLinearVariableFVReal
MooseVariableFE< RealVectorValue > VectorMooseVariable
HashMap is an abstraction for dictionary data type, we make it thread-safe by locking inserts.
Class for containing MooseEnum item information.
This class provides variable solution interface for linear finite volume problems.
Class for stuff related to variables.
This class provides variable solution values for other classes/objects to bind to when looping over f...
This class provides an interface for common operations on field variables of both FE and FV types wit...
Class for stuff related to variables.
Class for scalar variables (they are different).
Holds variables and provides some services.
HashMap< std::string, VectorMooseVariable * > _vector_vars_by_name
map of vector finite element variables with name keys
MooseVariableBase * getVariable(const std::string &var_name) const
Get a variable from the warehouse.
const std::set< const MooseVariableFieldBase * > & boundaryVars(BoundaryID bnd) const
Get the list of variables that needs to be reinitialized on a given boundary.
void jacobianSetup()
Call jacobianSetup for all variables.
MooseVariableFV< T > * getFVVariable(const std::string &var_name)
Get a finite volume variable.
const std::vector< MooseVariableScalar * > & scalars() const
Get the list of scalar variables.
HashMap< unsigned, VectorMooseVariable * > _vector_vars_by_number
map of vector finite element variables with unsigned keys
void subdomainSetup()
Call subdomainSetup for all variables.
MooseVariableFE< T > * getFieldVariable(const std::string &var_name)
Get a finite element variable from the warehouse of either Real or RealVectorValue type.
void initialSetup()
Call initialSetup for all variables.
std::vector< MooseVariableFieldBase * > _vars
list of finite element variables
std::vector< MooseVariableScalar * > _scalar_vars
list of all scalar, non-finite element variables
const std::map< unsigned int, std::shared_ptr< MooseVariableBase > > & numberToVariableMap() const
Map from variable number to variable pointer.
void add(const std::string &var_name, std::shared_ptr< MooseVariableBase > var)
Add a variable.
void setActiveVariableCoupleableVectorTags(const std::set< TagID > &vtags)
Set the active vector tags for the variables.
HashMap< std::string, MooseVariable * > _regular_vars_by_name
map of non-vector finite element variables with name keys
HashMap< std::string, MooseLinearVariableFVReal * > _linear_fv_vars_by_name
map of non-vector linear finite volume variables with name keys
std::map< BoundaryID, std::set< const MooseVariableFieldBase * > > _boundary_vars
Map to variables that need to be evaluated on a boundary.
HashMap< unsigned, MooseLinearVariableFVReal * > _linear_fv_vars_by_number
map of non-vector finite element variables with unsigned keys
HashMap< unsigned, ArrayMooseVariable * > _array_vars_by_number
map of vector finite element variables with unsigned keys
void addBoundaryVar(BoundaryID bnd, const MooseVariableFieldBase *var)
Add a boundary variable.
HashMap< unsigned, MooseVariable * > _regular_vars_by_number
map of non-vector finite element variables with unsigned keys
HashMap< unsigned, MooseVariableFVReal * > _fv_vars_by_number
map of non-vector finite element variables with unsigned keys
void timestepSetup()
Call timestepSetup for all variables.
void clearAllDofIndices()
Clear all dof indices from each variable.
std::map< std::string, MooseVariableBase * > _var_name
Name to variable mapping.
const std::vector< MooseVariableFieldBase * > & fieldVariables() const
Get the list of variables.
MooseVariableField< T > * getActualFieldVariable(const std::string &var_name)
This should be called getFieldVariable, but that name is already taken by a legacy function.
std::vector< VariableName > _names
list of variable names
void residualSetup()
Call residualSetup for all variables.
std::map< unsigned int, std::shared_ptr< MooseVariableBase > > _all_objects
All instances of objects.
HashMap< std::string, ArrayMooseVariable * > _array_vars_by_name
map of vector finite element variables with name keys
const std::vector< VariableName > & names() const
Get the list of all variable names.
void customSetup(const ExecFlagType &exec_type)
Call setup on a particular execute flag for all variables.
HashMap< std::string, MooseVariableFVReal * > _fv_vars_by_name
map of non-vector finite element variables with name keys
void addBoundaryVars(const std::set< BoundaryID > &boundary_ids, const std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > &vars)
Add a map of variables to a set of boundaries.
void setActiveScalarVariableCoupleableVectorTags(const std::set< TagID > &vtags)
Set the active vector tags for the variables.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
VectorValue< Real > RealVectorValue