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