https://mooseframework.inl.gov
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 {
25 public:
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 
58 protected:
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;
93  void computeOffDiagJacobianScalar(const Moose::MortarType mortar_type,
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 
159 inline Real
161 {
162  mooseError(
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 
168 inline void
170 {
171  mooseError("Must call the mortar type overload instead");
172 }
void computeScalarOffDiagJacobian()
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar.
virtual void computeJacobian() override
Computes d-_var-residual / d-_var and d-_var-residual / d-jvar, as well as d-_kappa-residual / d-_var...
virtual Real computeScalarQpOffDiagJacobian(const Moose::MortarType, 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()
MortarType
Definition: MooseTypes.h:771
void computeOffDiagJacobianScalar(unsigned int) override final
Computes jacobian block with respect to a scalar variable.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:127
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void computeResidual() override
Computes _var-residuals as well as _kappa-residual.
const bool _compute_scalar_residuals
Whether to compute scalar contributions for this instance.
unsigned int _h
Used internally to iterate over each scalar component.
void computeScalarOffDiagJacobianScalar(const unsigned int svar_num)
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-scalar.
virtual void computeResidual() override
Method for computing the residual.
const MooseVariableScalar & scalarVariable() const
The scalar variable that this kernel operates on.
const bool _use_scalar
Whether a scalar variable is declared for this constraint.
virtual void initScalarQpResidual()
Put necessary evaluations depending on qp but independent of test functions here. ...
const unsigned int _kappa_var
The unknown scalar variable ID.
virtual Real computeScalarQpResidual()
Method for computing the scalar part of residual at quadrature points.
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...
virtual Real computeScalarQpJacobian()
Method for computing the scalar variable part of Jacobian at quadrature points.
virtual void initScalarQpJacobian(const unsigned int)
Put necessary evaluations depending on qp but independent of test and shape functions here...
forward declarations
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const unsigned int _k_order
Order of the scalar variable, used in several places.
virtual void computeJacobian() override
Method for computing the Jacobian.
Class for scalar variables (they are different).
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:267
MortarScalarBase(const InputParameters &parameters)
This Constraint adds standardized methods for assembling to a primary scalar variable associated with...
virtual Real computeScalarQpOffDiagJacobianScalar(const unsigned int)
Method for computing an off-diagonal jacobian component at quadrature points.
const VariableValue & _kappa
Reference to the current solution at the current quadrature point.
virtual void computeScalarJacobian()
Method for computing the scalar variable part of Jacobian.