https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ADKernelScalarBase.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "ADKernel.h"
13
14#include <set>
15
26{
27public:
29
31
36 {
37 mooseAssert(_kappa_var_ptr, "kappa pointer should have been set in the constructor");
38 return *_kappa_var_ptr;
39 }
40
41 virtual void computeResidual() override;
42 virtual void computeJacobian() override;
46 virtual void computeOffDiagJacobian(unsigned int jvar) override;
51 void computeOffDiagJacobianScalar(unsigned int /*jvar_num*/) override;
52
56 void computeResidualAndJacobian() override;
57
58 std::set<std::string> additionalROVariables() override;
59
60protected:
65
74
79 virtual Real computeQpOffDiagJacobianScalar(unsigned int /*jvar*/) { return 0; }
80
85 virtual Real computeScalarQpJacobian() { return 0; }
86
91 virtual Real computeScalarQpOffDiagJacobian(const unsigned int /*jvar_num*/) { return 0; }
92
97 virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int /*svar_num*/) { return 0; }
98
102 virtual void initScalarQpResidual() {}
103
105 const bool _use_scalar;
106
109
112
115
117 const unsigned int _kappa_var;
118
120 const unsigned int _k_order;
121
124
126 unsigned int _h;
127 unsigned int _l;
128 std::vector<ADReal> _scalar_residuals;
129};
130
131inline ADReal
133{
135 "A scalar_variable has been set and compute_scalar_residuals=true, ",
136 "but the computeScalarQpResidual method was not overridden. Accidental call of base class?");
137 return 0;
138}
DualNumber< Real, DNDerivativeType, true > ADReal
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
This ADKernel adds standardized methods for assembling to a primary scalar variable associated with t...
virtual Real computeScalarQpJacobian()
Method for computing the scalar variable part of Jacobian at quadrature points Added solely for Gener...
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()
const bool _use_scalar
Whether a scalar variable is declared for this kernel.
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 Real computeScalarQpOffDiagJacobianScalar(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
const ADVariableValue & _kappa
Reference to the current solution at the current quadrature point.
virtual Real computeQpOffDiagJacobianScalar(unsigned int)
For coupling scalar variables Added solely for GenericKernelScalar override; should not be used.
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.
virtual Real computeScalarQpOffDiagJacobian(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
const MooseVariableScalar & scalarVariable() const
The scalar variable that this kernel operates on.
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.
const unsigned int _kappa_var
The unknown scalar variable ID.
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.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
Class for scalar variables (they are different).