20#include "libmesh/numeric_vector.h"
21#include "libmesh/dof_map.h"
22#include "libmesh/elem.h"
23#include "libmesh/quadrature.h"
24#include "libmesh/dense_vector.h"
25#include "libmesh/dense_vector.h"
39template <
typename OutputType>
89 virtual bool isArray()
const override;
90 virtual bool isVector()
const override;
94 virtual void setNodalValue(
const OutputType & value,
unsigned int idx = 0) = 0;
378 template <
bool is_ad>
422template <
typename OutputType>
427 return adDofValues();
430#define usingMooseVariableFieldMembers \
431 usingMooseVariableFieldBaseMembers; \
432 using MooseVariableField<OutputType>::_time_integrator; \
433 using MooseVariableField<OutputType>::_ad_real_dummy; \
434 using MooseVariableField<OutputType>::getSolution
DualNumber< Real, DNDerivativeType, true > ADReal
typename OutputTools< typename Moose::ADType< T >::type >::VariableSecond ADTemplateVariableSecond
typename OutputTools< typename Moose::ADType< T >::type >::VariableValue ADTemplateVariableValue
typename OutputTools< typename Moose::ADType< T >::type >::VariableCurl ADTemplateVariableCurl
typename OutputTools< typename Moose::ADType< T >::type >::VariableGradient ADTemplateVariableGradient
std::array< Real, 2 > values
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
Interface for notifications that the mesh has changed.
const InputParameters & parameters() const
Get the parameters of the object.
Moose::DOFType< OutputType >::type DofValue
Moose::ADType< DofValue >::type ADDofValue
This class provides an interface for common operations on field variables of both FE and FV types wit...
Class for stuff related to variables.
virtual const FieldVariablePhiGradient & gradPhiFaceNeighbor() const =0
Return the gradients of the variable's shape functions on a neighboring element face.
virtual bool isVector() const override
virtual const DofValues & dofValuesDotDotNeighbor() const =0
virtual const ADTemplateVariableGradient< OutputType > & adGradSln() const =0
AD grad solution getter.
virtual const FieldVariablePhiGradient & gradPhiNeighbor() const =0
Return the gradients of the variable's shape functions on a neighboring element.
virtual const DofValues & dofValuesNeighbor() const =0
virtual const FieldVariablePhiValue & phiFaceNeighbor() const =0
Return the variable's shape functions on a neighboring element face.
virtual void setDofValue(const DofValue &value, unsigned int index)=0
Degree of freedom value setters.
virtual const DofValues & dofValuesOldNeighbor() const =0
virtual const FieldVariablePhiValue & phiLower() const =0
Return the variable's shape functions on a lower-dimensional element.
virtual const FieldVariablePhiGradient & gradPhiFace() const =0
Return the gradients of the variable's shape functions on an element face.
MooseArray< OutputGradient > FieldVariableGradient
MooseArray< std::vector< OutputShape > > FieldVariablePhiCurl
MooseArray< std::vector< OutputShapeGradient > > FieldVariableTestGradient
virtual const MooseArray< OutputType > & nodalValueOldArray() const =0
libMesh::TensorTools::IncrementRank< OutputShape >::type OutputShapeGradient
MooseArray< std::vector< OutputShapeDivergence > > FieldVariablePhiDivergence
virtual const ADTemplateVariableSecond< OutputType > & adSecondSlnNeighbor() const =0
AD second neighbor solution getter.
virtual const DofValues & dofValues() const =0
dof values getters
virtual const MooseArray< OutputType > & nodalValueOlderArray() const =0
virtual const ADDofValues & adDofValuesDot() const =0
Return the AD time derivatives at dofs.
virtual const ADTemplateVariableValue< OutputType > & adSlnNeighbor() const =0
AD neighbor solution getter.
const MooseArray< GenericReal< is_ad > > & genericDofValues() const
virtual const FieldVariablePhiSecond & secondPhi() const =0
Return the rank-2 tensor of second derivatives of the variable's elemental shape functions.
virtual const FieldVariableValue & matrixTagValue(TagID tag) const =0
typename MooseVariableDataBase< OutputType >::ADDofValue ADDofValue
MooseArray< std::vector< OutputShape > > FieldVariableTestCurl
virtual const DofValues & dofValuesDotDotOldNeighbor() const =0
virtual const DofValues & dofValuesDotNeighbor() const =0
virtual const ADTemplateVariableValue< OutputType > & adUDotDot() const =0
AD second time derivative getter.
MooseArray< OutputDivergence > FieldVariableDivergence
virtual const FieldVariableValue & slnOldNeighbor() const =0
Moose::ShapeType< OutputType >::type OutputShape
virtual void timestepSetup() override
Gets called at the beginning of the timestep before this object is asked to do its job.
virtual const FieldVariableGradient & gradSln() const =0
element gradients
libMesh::TensorTools::DecrementRank< OutputShape >::type OutputShapeDivergence
virtual const DofValues & dofValuesPreviousNL() const =0
virtual const MooseArray< OutputType > & nodalValueArray() const =0
Methods for retrieving values of variables at the nodes in a MooseArray for AuxKernelBase.
virtual const FieldVariableValue & slnOlder() const =0
virtual const DofValues & dofValuesPreviousNLNeighbor() const =0
virtual bool computingCurl() const =0
Whether or not this variable is computing any curl quantities.
virtual const ADTemplateVariableGradient< OutputType > & adGradSlnNeighborDot() const =0
AD grad of time derivative neighbor solution getter.
virtual const ADTemplateVariableValue< OutputType > & adUDot() const =0
AD time derivative getter.
virtual void setLowerDofValues(const DenseVector< DofValue > &values)=0
Set local DOF values for a lower dimensional element and evaluate the values on quadrature points.
virtual const ADTemplateVariableCurl< OutputType > & adCurlSlnNeighbor() const =0
AD curl neighbor solution getter.
typename MooseVariableDataBase< OutputType >::ADDofValues ADDofValues
virtual const DofValues & dofValuesOlder() const =0
virtual const MooseArray< libMesh::Number > & dofValuesDuDotDotDuNeighbor() const =0
virtual const ADTemplateVariableGradient< OutputType > & adGradSlnNeighbor() const =0
AD grad neighbor solution getter.
const TimeIntegrator *const _time_integrator
the time integrator used for computing time derivatives
libMesh::TensorTools::DecrementRank< OutputType >::type OutputDivergence
virtual bool computingDiv() const =0
Whether or not this variable is computing any divergence quantities.
libMesh::TensorTools::IncrementRank< OutputType >::type OutputGradient
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job.
virtual const DofValues & nodalVectorTagValue(TagID tag) const =0
virtual const DofValues & dofValuesDotOld() const =0
virtual void setNodalValue(const OutputType &value, unsigned int idx=0)=0
typename MooseVariableDataBase< OutputType >::DofValue DofValue
virtual const FieldVariableGradient & gradSlnNeighbor() const =0
neighbor solution gradients
MooseArray< std::vector< OutputShapeSecond > > FieldVariablePhiSecond
virtual const ADDofValues & adDofValues() const =0
Return the AD dof values.
bool usesPhiNeighbor() const
Whether or not this variable is actually using the shape function value.
virtual const FieldVariablePhiValue & phi() const =0
Return the variable's elemental shape functions.
virtual const ADTemplateVariableValue< OutputType > & adUDotDotNeighbor() const =0
AD neighbor second time derivative getter.
virtual const ADTemplateVariableCurl< OutputType > & adCurlSln() const =0
AD curl solution getter.
virtual Moose::VarFieldType fieldType() const override
Field type of this variable.
MooseArray< std::vector< OutputShapeGradient > > FieldVariablePhiGradient
MooseArray< std::vector< OutputShape > > FieldVariablePhiValue
virtual const FieldVariablePhiSecond & secondPhiFace() const =0
Return the rank-2 tensor of second derivatives of the variable's shape functions on an element face.
static InputParameters validParams()
virtual const FieldVariablePhiDivergence & divPhi() const =0
Divergence of the shape functions.
MooseArray< std::vector< OutputShape > > FieldVariableTestValue
MooseArray< std::vector< OutputShapeDivergence > > FieldVariableTestDivergence
virtual const DofValues & dofValuesDotOldNeighbor() const =0
virtual const ADDofValues & adDofValuesNeighbor() const =0
Return the AD neighbor dof values.
virtual const ADTemplateVariableValue< OutputType > & adUDotNeighbor() const =0
AD neighbor time derivative getter.
virtual const FieldVariableGradient & gradSlnOldNeighbor() const =0
virtual const ADTemplateVariableSecond< OutputType > & adSecondSln() const =0
AD second solution getter.
MooseArray< OutputType > FieldVariableCurl
virtual const DofValues & dofValuesOlderNeighbor() const =0
virtual const DofValues & vectorTagDofValue(TagID tag) const =0
ADReal _ad_real_dummy
A dummy ADReal variable.
virtual bool isArray() const override
virtual const FieldVariablePhiSecond & secondPhiFaceNeighbor() const =0
Return the rank-2 tensor of second derivatives of the variable's shape functions on a neighboring ele...
virtual const FieldVariableValue & slnOld() const =0
libMesh::TensorTools::IncrementRank< OutputShapeGradient >::type OutputShapeSecond
typename MooseVariableDataBase< OutputType >::DofValues DofValues
virtual const ADTemplateVariableGradient< OutputType > & adGradSlnDot() const =0
AD grad of time derivative solution getter.
libMesh::TensorTools::IncrementRank< OutputGradient >::type OutputSecond
virtual const DofValues & dofValuesDotDot() const =0
MooseArray< OutputSecond > FieldVariableSecond
virtual const FieldVariableValue & sln() const =0
virtual const ADTemplateVariableValue< OutputType > & adSln() const =0
AD solution getter.
virtual const MooseArray< libMesh::Number > & dofValuesDuDotDuNeighbor() const =0
virtual bool computingSecond() const =0
Whether or not this variable is computing any second derivatives.
virtual const DofValues & dofValuesOld() const =0
virtual const FieldVariableValue & vectorTagValue(TagID tag) const =0
tag values getters
virtual void residualSetup() override
Gets called just before the residual is computed and before this object is asked to do its job.
virtual const DofValues & dofValuesDot() const =0
virtual const FieldVariablePhiValue & curlPhi() const =0
Curl of the shape functions.
virtual const MooseArray< libMesh::Number > & dofValuesDuDotDotDu() const =0
bool hasBlocks(const SubdomainID id) const override
Returns whether the functor is defined on this block.
virtual const DofValues & dofValuesDotDotOld() const =0
virtual void setDofValues(const DenseVector< DofValue > &values)=0
Set local DOF values and evaluate the values on quadrature points.
virtual const FieldVariablePhiValue & phiFace() const =0
Return the variable's shape functions on an element face.
virtual const MooseArray< libMesh::Number > & dofValuesDuDotDu() const =0
MooseArray< OutputType > FieldVariableValue
virtual const FieldVariablePhiSecond & secondPhiNeighbor() const =0
Return the rank-2 tensor of second derivatives of the variable's shape functions on a neighboring ele...
virtual const FieldVariableValue & slnNeighbor() const =0
virtual const DofValues & nodalMatrixTagValue(TagID tag) const =0
virtual bool usesSecondPhiNeighbor() const =0
Whether or not this variable is actually using the shape function second derivatives.
virtual const FieldVariableGradient & gradSlnOld() const =0
MooseArray< std::vector< OutputShapeSecond > > FieldVariableTestSecond
virtual const FieldVariablePhiGradient & gradPhi() const =0
Return the gradients of the variable's elemental shape functions.
virtual const FieldVariablePhiValue & phiNeighbor() const =0
Return the variable's shape functions on a neighboring element.
bool usesGradPhiNeighbor() const
Whether or not this variable is actually using the shape function gradient.
Base class template for functor objects.
Base class for time integrators.