21#include "libmesh/fe_type.h"
22#include "libmesh/enum_fe_family.h"
145 mooseError(
"Base class cannot determine this");
154 std::vector<dof_id_type> & )
const
168 unsigned int component)
const;
275 mooseError(
"setActiveTags must be overridden in derived classes.");
278#define usingMooseVariableBaseMembers \
279 using MooseVariableBase::_sys; \
280 using MooseVariableBase::_fe_type; \
281 using MooseVariableBase::_var_num; \
282 using MooseVariableBase::_index; \
283 using MooseVariableBase::_var_kind; \
284 using MooseVariableBase::_subproblem; \
285 using MooseVariableBase::_variable; \
286 using MooseVariableBase::_assembly; \
287 using MooseVariableBase::_dof_map; \
288 using MooseVariableBase::_dof_indices; \
289 using MooseVariableBase::_mesh; \
290 using MooseVariableBase::_tid; \
291 using MooseVariableBase::_count; \
292 using MooseVariableBase::_scaling_factor
Keeps track of stuff related to assembling.
An interface that restricts an object to subdomains via the 'blocks' input parameter.
const InputParameters & parameters() const
Get the parameters of the object.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Every object that can be built by the factory should be derived from this class.
Moose::VarKindType _var_kind
Variable type (see MooseTypes.h)
virtual bool supportsGeometricInfoBasedLoops() const
Whether this variable supports geometric-info-based loops, such as ElemInfo/FaceInfo loops.
unsigned int _var_num
variable number (from libMesh)
const libMesh::Variable & _variable
libMesh variable object for this variable
std::vector< dof_id_type > componentDofIndices(const std::vector< dof_id_type > &dof_indices, unsigned int component) const
Obtain DoF indices of a component with the indices of the 0th component.
unsigned int _index
variable number within MOOSE
virtual const std::vector< dof_id_type > & dofIndices() const
Get local DoF indices.
const libMesh::DofMap & dofMap() const
The DofMap associated with the system this variable is in.
virtual bool hasDoFsOnNodes() const
Does this variable have DoFs on nodes.
const libMesh::FEType & feType() const
Get the type of finite element object.
unsigned int totalVarDofs()
bool _use_dual
If dual mortar approach is used.
std::vector< std::string > _array_var_component_names
Array variable names when the variable is an array variable.
const std::vector< Real > & arrayScalingFactor() const
Real scalingFactor() const
Get the scaling factor for this variable.
virtual bool isArray() const
SubProblem & _subproblem
Problem this variable is part of.
libMesh::FEType _fe_type
The FEType associated with this variable.
bool useDual() const
Get dual mortar option.
bool eigen() const
Whether or not this variable operates on an eigen kernel.
static InputParameters validParams()
virtual bool isNodal() const
Is this variable nodal.
MooseMesh & _mesh
mesh the variable is active in
bool doDerivatives() const
virtual libMesh::FEContinuity getContinuity() const
Return the continuity of this variable.
bool _is_eigen
Whether or not this variable operates on eigen kernels.
void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
bool _is_lower_d
Whether this variable lives on lower dimensional blocks.
const SystemBase & sys() const
Get the system this variable is part of.
const libMesh::NumericVector< libMesh::Number > & getSolution(const Moose::StateArg &state) const
Get the solution corresponding to the provided state.
virtual void sizeMatrixTagData()
Size data structures related to matrix tagging.
virtual unsigned int numberOfDofs() const
Get the number of local DoFs.
virtual void setActiveTags(const std::set< TagID > &vtags)
Set the active vector tags.
SystemBase & sys()
Get the system this variable is part of.
const std::string & arrayVariableComponent(const unsigned int i) const
Returns the variable name of a component of an array variable.
const std::vector< dof_id_type > & allDofIndices() const
Get all global dofindices for the variable.
std::vector< Real > _scaling_factor
scaling factor for this variable
const unsigned int _count
Number of variables in the array.
libMesh::Order order() const
Get the order of this variable Note: Order enum can be implicitly converted to unsigned int.
virtual void clearAllDofIndices()
Assembly & _assembly
Assembly data.
virtual void getDofIndices(const Elem *, std::vector< dof_id_type > &) const
const libMesh::DofMap & _dof_map
DOF map.
std::vector< dof_id_type > _dof_indices
DOF indices.
Moose::VarKindType kind() const
Kind of the variable (Nonlinear, Auxiliary, ...)
void eigen(bool eigen)
Mark this variable as an eigen var or non-eigen var.
SystemBase & _sys
System this variable is part of.
unsigned int number() const
Get variable number coming from libMesh.
virtual bool supportsQpBasedLoops() const
Whether this variable supports QP-indexed loops.
unsigned int count() const
Get the number of components Note: For standard and vector variables, the number is one.
A class to provide an common interface to objects requiring "outputs" option.
Generic class for solving transient nonlinear problems.
Base class for a system (of equations)
VarKindType
Framework-wide stuff.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
State argument for evaluating functors.