31 Moose::VarKindType::VAR_SOLVER,
32 Moose::VarFieldType::VAR_FIELD_STANDARD),
33 _var(*mooseVariable()),
34 _current_node(_var.node()),
49 "saved-in auxiliary variable is incompatible with the object's nonlinear variable: ",
66 "saved-in auxiliary variable is incompatible with the object's nonlinear variable: ",
86 for (
unsigned int i = 0; i <
_save_in.size(); i++)
128 if (cached_val == 0.)
165 const unsigned int ivar = ivariable->number();
166 const unsigned int jvar = jvariable->number();
virtual Assembly & assembly(const THREAD_ID tid, const unsigned int sys_num) override
std::vector< std::pair< MooseVariableFieldBase *, MooseVariableFieldBase * > > & couplingEntries(const THREAD_ID tid, const unsigned int nl_sys_num)
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
const libMesh::FEType & feType() const
Get the type of finite element object.
SystemBase & sys()
Get the system this variable is part of.
unsigned int number() const
Get variable number coming from libMesh.
void addMooseVariableDependency(MooseVariableFieldBase *var)
Call this function to add the passed in MooseVariableFieldBase as a variable that this object depends...
const dof_id_type & nodalDofIndex() const override
virtual bool isNodalDefined() const override
Is this variable defined at nodes.
Interface for objects that need to get values of MooseVariables.
MooseVariableFE< Real > * mooseVariable() const
Return the MooseVariableFE object that this interface acts on.
Base class for deriving any boundary condition that works at nodes.
static InputParameters validParams()
std::vector< AuxVariableName > _diag_save_in_strings
bool _has_diag_save_in
The aux variables to save the diagonal Jacobian contributions to.
std::vector< MooseVariableFEBase * > _diag_save_in
bool _has_save_in
The aux variables to save the residual contributions to.
std::vector< MooseVariableFEBase * > _save_in
std::vector< AuxVariableName > _save_in_strings
const Node *const & _current_node
current node being processed
virtual Real computeQpJacobian()
The user can override this function to compute the "on-diagonal" Jacobian contribution for this Nodal...
NodalBC(const InputParameters ¶meters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
This is the virtual that derived classes should override for computing an off-diagonal jacobian compo...
virtual void computeResidualAndJacobian() override
Compute this object's contribution to the residual and Jacobian simultaneously.
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes this object's contribution to off-diagonal blocks of the system Jacobian matrix.
static InputParameters validParams()
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
virtual Real computeQpResidual()=0
virtual void computeResidual() override
Compute this object's contribution to the residual.
THREAD_ID _tid
The thread ID for this kernel.
SubProblem & _subproblem
Reference to this kernel's SubProblem.
SystemBase & _sys
Reference to the EquationSystem object.
FEProblemBase & _fe_problem
Reference to this kernel's FEProblemBase.
virtual MooseVariable & getStandardVariable(const THREAD_ID tid, const std::string &var_name)=0
Returns the variable reference for requested MooseVariable which may be in any system.
virtual void addVariableToZeroOnJacobian(std::string var_name)
Adds this variable to the list of variables to be zeroed during each Jacobian evaluation.
virtual void addVariableToZeroOnResidual(std::string var_name)
Adds this variable to the list of variables to be zeroed during each residual evaluation.
unsigned int number() const
Gets the number of this system.
void addJacobianElement(Assembly &assembly, Real value, dof_id_type row_index, dof_id_type column_index, Real scaling_factor)
Add into a single Jacobian element.
void setResidual(SystemBase &sys, const T &residual, MooseVariableFE< T > &var)
Set residual using the variables' insertion API.
bool _is_implicit
If the object is using implicit or explicit form.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
std::string incompatVarMsg(MooseVariableFieldBase &var1, MooseVariableFieldBase &var2)
Builds and returns a string of the form: