21#include "libmesh/fe_type.h"
22#include "libmesh/enum_fe_family.h"
164 mooseError(
"Base class cannot determine this");
173 std::vector<dof_id_type> & )
const
187 unsigned int component)
const;
294 mooseError(
"setActiveTags must be overridden in derived classes.");
297#define usingMooseVariableBaseMembers \
298 using MooseVariableBase::_sys; \
299 using MooseVariableBase::_fe_type; \
300 using MooseVariableBase::_var_num; \
301 using MooseVariableBase::_index; \
302 using MooseVariableBase::_var_kind; \
303 using MooseVariableBase::_subproblem; \
304 using MooseVariableBase::_variable; \
305 using MooseVariableBase::_assembly; \
306 using MooseVariableBase::_dof_map; \
307 using MooseVariableBase::_dof_indices; \
308 using MooseVariableBase::_mesh; \
309 using MooseVariableBase::_tid; \
310 using MooseVariableBase::_count; \
311 using MooseVariableBase::_scaling_factor
subdomain_id_type SubdomainID
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
bool activeOnSubdomains(const std::set< SubdomainID > &subdomains) const
Is the variable active on the subdomains?
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
const std::set< SubdomainID > & activeSubdomains() const
The subdomains the variable is active on.
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.
bool activeOnSubdomain(SubdomainID subdomain) const
Is the variable active on the subdomain?
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.