https://mooseframework.inl.gov
Loading...
Searching...
No Matches
KernelScalarBase.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 "Kernel.h"
13
24{
25public:
27
29
34 {
35 mooseAssert(_kappa_var_ptr, "kappa pointer should have been set in the constructor");
36 return *_kappa_var_ptr;
37 }
38
39 virtual void computeResidual() override;
40 virtual void computeJacobian() override;
44 virtual void computeOffDiagJacobian(unsigned int jvar_num) override;
49 void computeOffDiagJacobianScalar(unsigned int svar_num) override;
50
52 virtual void computeResidualAndJacobian() override;
53
54protected:
60 virtual void precalculateOffDiagJacobianScalar(unsigned int /* svar_num */) {}
61
65 virtual void computeScalarResidual();
66
70 virtual Real computeScalarQpResidual();
71
75 virtual void computeScalarJacobian();
76
81 virtual Real computeScalarQpJacobian() { return 0; }
82
86 virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num);
87
91 virtual Real computeScalarQpOffDiagJacobian(const unsigned int /*jvar_num*/) { return 0; }
92
97 virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num);
98
102 virtual void computeScalarOffDiagJacobianScalar(const unsigned int svar_num);
103
107 virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int /*svar_num*/) { return 0; }
108
112 virtual void initScalarQpResidual() {}
113
117 virtual void initScalarQpJacobian(const unsigned int /*svar_num*/) {}
118
124
126 const bool _use_scalar;
127
130
133
136
138 const unsigned int _kappa_var;
139
141 const unsigned int _k_order;
142
145
147 unsigned int _h;
148 unsigned int _l;
149};
150
151inline Real
153{
155 "A scalar_variable has been set and compute_scalar_residuals=true, ",
156 "but the computeScalarQpResidual method was not overridden. Accidental call of base class?");
157 return 0;
158}
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
OutputTools< Real >::VariableValue VariableValue
Definition MooseTypes.h:348
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
This Kernel adds standardized methods for assembling to a primary scalar variable associated with the...
virtual void precalculateOffDiagJacobianScalar(unsigned int)
Precalculate method that is executed prior to scalar coupled variable loop within computeOffDiagJacob...
virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num)
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar.
virtual void computeOffDiagJacobian(unsigned int jvar_num) override
Computes d-_var-residual / d-jvar as well as d-_kappa-residual / d-jvar.
virtual void computeJacobian() override
Compute this Kernel's contribution to the diagonal Jacobian entries.
virtual void initScalarQpJacobian(const unsigned int)
Put necessary evaluations depending on qp but independent of test and shape functions here.
virtual void computeScalarJacobian()
Method for computing the scalar variable part of Jacobian.
virtual Real computeScalarQpOffDiagJacobian(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
virtual Real computeScalarQpResidual()
Method for computing the scalar part of residual at quadrature points.
virtual Real computeScalarQpJacobian()
Method for computing the scalar variable part of Jacobian at quadrature points.
const unsigned int _kappa_var
The unknown scalar variable ID.
virtual void initScalarQpOffDiagJacobian(const MooseVariableFEBase &)
Put necessary evaluations depending on qp but independent of test and shape functions here for off-di...
const unsigned int _k_order
Order of the scalar variable, used in several places.
void computeOffDiagJacobianScalar(unsigned int svar_num) override
Computes jacobian block with respect to a scalar variable.
virtual void computeResidualAndJacobian() override
Compute the residual and Jacobian together.
const bool _compute_field_residuals
Whether to compute field contributions for this instance.
virtual void initScalarQpResidual()
Put necessary evaluations depending on qp but independent of test functions here.
virtual void computeResidual() override
Compute this Kernel's contribution to the residual.
unsigned int _h
Used internally to iterate over each scalar component.
const VariableValue & _kappa
Reference to the current solution at the current quadrature point.
virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num)
Method for computing an off-diagonal jacobian component d-_var-residual / d-scalar Revised version of...
virtual void computeScalarOffDiagJacobianScalar(const unsigned int svar_num)
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-scalar.
virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
const MooseVariableScalar *const _kappa_var_ptr
(Pointer to) Scalar variable this kernel operates on
static InputParameters validParams()
const bool _use_scalar
Whether a scalar variable is declared for this kernel.
const MooseVariableScalar & scalarVariable() const
The scalar variable that this kernel operates on.
virtual void computeScalarResidual()
Method for computing the scalar part of residual.
const bool _compute_scalar_residuals
Whether to compute scalar contributions for this instance.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
This class provides an interface for common operations on field variables of both FE and FV types wit...
Class for scalar variables (they are different).