14#include "libmesh/fe_base.h"
18template <
typename OutputType>
25template <
typename OutputType>
30 _time_integrator(_sys.queryTimeIntegrator(_var_num))
34template <
typename OutputType>
42template <
typename OutputType>
50template <
typename OutputType>
58template <
typename OutputType>
62 if (std::is_same<OutputType, Real>::value)
64 else if (std::is_same<OutputType, RealVectorValue>::value)
66 else if (std::is_same<OutputType, RealEigenVector>::value)
72template <
typename OutputType>
77 if (std::is_same<OutputType, RealEigenVector>::value != is_array)
78 mooseError(
"A variable is marked as an array variable in a base class, but in a derived class "
79 "the output type is not consistent.");
83template <
typename OutputType>
87 return std::is_same<OutputType, RealVectorValue>::value;
111 mooseError(
"genericDofValues not implemented for array variables");
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Interface for notifications that the mesh has changed.
virtual bool isArray() const
This class provides an interface for common operations on field variables of both FE and FV types wit...
static InputParameters validParams()
Class for stuff related to variables.
virtual bool isVector() const override
MooseVariableField(const InputParameters ¶meters)
virtual void timestepSetup() override
Gets called at the beginning of the timestep before this object is asked to do its job.
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job.
virtual Moose::VarFieldType fieldType() const override
Field type of this variable.
static InputParameters validParams()
virtual bool isArray() const override
virtual void residualSetup() override
Gets called just before the residual is computed and before this object is asked to do its job.
Base class template for functor objects.
virtual void residualSetup()
Gets called just before the residual is computed and before this object is asked to do its job.
virtual void jacobianSetup()
Gets called just before the Jacobian is computed and before this object is asked to do its job.
virtual void timestepSetup()
Gets called at the beginning of the timestep before this object is asked to do its job.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...