https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MortarScalarBase.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 "MortarConstraint.h"
13
24{
25public:
27
29
30 // Using declarations necessary to pull in computeResidual with different parameter list and avoid
31 // hidden method warning
33
34 // Using declarations necessary to pull in computeJacobian with different parameter list and avoid
35 // hidden method warning
37
42 {
43 if (!_kappa_var_ptr)
44 mooseError("kappa pointer should have been set in the constructor");
45 return *_kappa_var_ptr;
46 }
47
51 virtual void computeResidual() override;
56 virtual void computeJacobian() override;
57
58protected:
62 virtual Real computeScalarQpResidual();
63
67 virtual void computeScalarJacobian();
68
73 virtual Real computeScalarQpJacobian() { return 0; }
74
79
83 virtual Real computeScalarQpOffDiagJacobian(const Moose::MortarType /*mortar_type*/,
84 const unsigned int /*jvar_num*/)
85 {
86 return 0;
87 }
88
89 void computeOffDiagJacobianScalar(unsigned int) override final;
94 const unsigned int svar_num);
95
99 virtual Real computeQpOffDiagJacobianScalar(const Moose::MortarType /*mortar_type*/,
100 unsigned int /*svar_num*/)
101 {
102 return 0;
103 }
104
108 void computeScalarOffDiagJacobianScalar(const unsigned int svar_num);
109
113 virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int /*svar_num*/) { return 0; }
114
118 virtual void initScalarQpResidual() {}
119
123 virtual void initScalarQpJacobian(const unsigned int /*jvar_num*/) {}
124
131 virtual void initScalarQpOffDiagJacobian(const Moose::MortarType /*mortar_type*/,
132 const unsigned int /*jvar_num*/)
133 {
134 }
135
137 const bool _use_scalar;
138
141
144
146 const unsigned int _kappa_var;
147
149 const unsigned int _k_order;
150
153
155 unsigned int _h;
156 unsigned int _l;
157};
158
159inline Real
161{
163 "A scalar_variable has been set and compute_scalar_residuals=true, ",
164 "but the computeScalarQpResidual method was not overridden. Accidental call of base class?");
165 return 0;
166}
167
168inline void
170{
171 mooseError("Must call the mortar type overload instead");
172}
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.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
Class for scalar variables (they are different).
virtual void computeJacobian() override
Method for computing the Jacobian.
virtual void computeResidual() override
Method for computing the residual.
This Constraint adds standardized methods for assembling to a primary scalar variable associated with...
void computeScalarOffDiagJacobian()
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar.
virtual Real computeScalarQpResidual()
Method for computing the scalar part of residual at quadrature points.
const unsigned int _k_order
Order of the scalar variable, used in several places.
virtual Real computeQpOffDiagJacobianScalar(const Moose::MortarType, unsigned int)
For coupling scalar variables.
virtual void initScalarQpOffDiagJacobian(const Moose::MortarType, const unsigned int)
Put necessary evaluations depending on qp but independent of test and shape functions here for off-di...
const bool _use_scalar
Whether a scalar variable is declared for this constraint.
unsigned int _h
Used internally to iterate over each scalar component.
virtual void initScalarQpResidual()
Put necessary evaluations depending on qp but independent of test functions here.
virtual Real computeScalarQpOffDiagJacobian(const Moose::MortarType, const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
void computeScalarOffDiagJacobianScalar(const unsigned int svar_num)
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-scalar.
const bool _compute_scalar_residuals
Whether to compute scalar contributions for this instance.
const MooseVariableScalar & scalarVariable() const
The scalar variable that this kernel operates on.
const unsigned int _kappa_var
The unknown scalar variable ID.
virtual Real computeScalarQpJacobian()
Method for computing the scalar variable part of Jacobian at quadrature points.
const VariableValue & _kappa
Reference to the current solution at the current quadrature point.
const MooseVariableScalar *const _kappa_var_ptr
(Pointer to) Scalar variable this kernel operates on
virtual void initScalarQpJacobian(const unsigned int)
Put necessary evaluations depending on qp but independent of test and shape functions here.
virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
virtual void computeJacobian() override
Computes d-_var-residual / d-_var and d-_var-residual / d-jvar, as well as d-_kappa-residual / d-_var...
static InputParameters validParams()
void computeOffDiagJacobianScalar(unsigned int) override final
Computes jacobian block with respect to a scalar variable.
virtual void computeScalarJacobian()
Method for computing the scalar variable part of Jacobian.
virtual void computeResidual() override
Computes _var-residuals as well as _kappa-residual.