19#include "libmesh/quadrature.h"
26 params.
addCoupledVar(
"scalar_variable",
"Primary coupled scalar variable");
27 params.
addParam<
bool>(
"compute_scalar_residuals",
true,
"Whether to compute scalar residuals");
29 "compute_field_residuals",
true,
"Whether to compute residuals for the field variable.");
35 _use_scalar(isParamValid(
"scalar_variable") ? true : false),
36 _compute_scalar_residuals(!_use_scalar ? false : getParam<bool>(
"compute_scalar_residuals")),
37 _compute_field_residuals(getParam<bool>(
"compute_field_residuals")),
38 _kappa_var_ptr(_use_scalar ? getScalarVar(
"scalar_variable", 0) : nullptr),
39 _kappa_var(_use_scalar ? _kappa_var_ptr->number() : 0),
40 _k_order(_use_scalar ? _kappa_var_ptr->order() : 0),
41 _kappa(_use_scalar ? _kappa_var_ptr->adSln() : _ad_zero)
63 std::vector<Real> scalar_residuals(
_k_order);
ADKernelScalarBase(const InputParameters ¶meters)
const bool _compute_scalar_residuals
Whether to compute scalar contributions for this instance.
std::set< std::string > additionalROVariables() override
const bool _compute_field_residuals
Whether to compute field contributions for this instance.
virtual void computeResidual() override
Compute this object's contribution to the residual.
void computeResidualAndJacobian() override
Computes residual and jacobian block for field and scalar variables.
static InputParameters validParams()
std::vector< ADReal > _scalar_residuals
const unsigned int _k_order
Order of the scalar variable, used in several places.
virtual void initScalarQpResidual()
Put necessary evaluations depending on qp but independent of test functions here.
virtual ADReal computeScalarQpResidual()
Method for computing the scalar part of residual at quadrature points.
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-_var-residual / d-jvar as well as d-_kappa-residual / d-jvar.
virtual void computeScalarResidualsForJacobian()
compute the _scalar_residuals member for filling the Jacobian.
const MooseVariableScalar *const _kappa_var_ptr
(Pointer to) Scalar variable this kernel operates on
void computeOffDiagJacobianScalar(unsigned int) override
Computes jacobian block with respect to a scalar variable.
unsigned int _h
Used internally to iterate over each scalar component.
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
void computeResidual() override
Compute this object's contribution to the residual.
static InputParameters validParams()
MooseVariableFE< T > & _var
This is a regular kernel so we cast to a regular MooseVariable.
void computeResidualAndJacobian() override
Compute this object's contribution to the residual and Jacobian simultaneously.
const MooseArray< ADReal > & _ad_JxW
The ad version of JxW.
const MooseArray< ADReal > & _ad_coord
The ad version of coord.
const bool _use_displaced_mesh
Whether this object is acting on the displaced mesh.
const MooseArray< Real > & _coord
The scaling factor to convert from cartesian to another coordinate system (e.g rz,...
unsigned int _qp
The current quadrature point index.
const MooseArray< Real > & _JxW
The current quadrature point weight value.
const QBase *const & _qrule
active quadrature rule
const std::string & name() const
Get the name of the class.
virtual const std::vector< dof_id_type > & dofIndices() const
Get local DoF indices.
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
unsigned int number() const
Get variable number coming from libMesh.
Assembly & _assembly
Reference to this Kernel's assembly object.
virtual std::set< std::string > additionalROVariables()
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
Add the provided incoming residuals and derivatives for the Jacobian, corresponding to the provided d...
void addResiduals(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
Add the provided incoming residuals corresponding to the provided dof indices.