18 #include "libmesh/quadrature.h" 30 _lowerd_var(*getVar(
"lowerd_variable", 0)),
31 _lambda(_is_implicit ? _lowerd_var.slnLower() : _lowerd_var.slnLowerOld()),
33 _phi_lambda(_lowerd_var.phiLower()),
34 _test_lambda(_lowerd_var.phiLower())
38 if (lower_domains.count(
id) == 0)
42 "'lowerd_variable' must be defined on the boundary lower-dimensional subdomain '" +
44 "' that is added by Mesh/build_all_side_lowerd_mesh=true.\nThe check could be overly " 50 "Must not be defined on the boundary lower-dimensional subdomain '" +
87 "Jacobian types must have lower in computeLowerDJacobian");
89 const auto & test_space =
95 const auto & loc_phi =
115 for (
_i = 0;
_i < test_space.size();
_i++)
116 for (
_j = 0;
_j < loc_phi.size();
_j++)
126 if (jvar_num ==
variable().number())
147 const unsigned int jvar_num)
151 "Jacobian types must have lower in computeLowerDJacobian");
153 const auto & test_space =
168 const auto & loc_phi =
174 for (
_i = 0;
_i < test_space.size();
_i++)
175 for (
_j = 0;
_j < loc_phi.size();
_j++)
180 mooseError(
"Array variable cannot be coupled into integrated BC currently");
182 mooseError(
"Vector variable cannot be coupled into integrated BC currently");
MooseMesh & _mesh
Reference to this Kernel's mesh object.
const VariableTestValue & _test
test function values (in QPs)
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-ivar-residual / d-jvar...
virtual void initLowerDQpResidual()
Put necessary evaluations depending on qp but independent on test functions here. ...
void accumulateTaggedLocalResidual()
Local residual blocks will be appended by adding the current local kernel residual.
virtual Real computeLowerDQpResidual()=0
Method for computing the Lower part of residual at quadrature points.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
unsigned int number() const
Get variable number coming from libMesh.
static InputParameters validParams()
virtual void initLowerDQpJacobian(Moose::ConstraintJacobianType)
Put necessary evaluations depending on qp but independent on test and shape functions here...
unsigned int _i
i-th, j-th index for enumerating test and shape functions
void mooseDocumentedError(const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
const VariableTestValue & _test_lambda
test functions
virtual const MooseVariable & variable() const override
Returns the variable that this object operates on.
const VariablePhiValue & _phi
shape function values (in QPs)
DenseMatrix< Number > _local_ke
Holds local Jacobian entries as they are accumulated by this Kernel.
const MooseVariableFieldBase & getVariable(unsigned int jvar_num) const
Retrieve the variable object from our system associated with jvar_num.
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
unsigned int _qp
quadrature point index
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
LowerDIntegratedBC(const InputParameters ¶meters)
virtual void computeLowerDJacobian(Moose::ConstraintJacobianType type)
Method for computing the LowerLower, PrimaryLower and LowerPrimary parts of Jacobian.
virtual Real computeLowerDQpJacobian(Moose::ConstraintJacobianType)=0
Method for computing the LowerLower, PrimaryLower and LowerPrimary parts of Jacobian at quadrature po...
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
virtual Real computeLowerDQpOffDiagJacobian(Moose::ConstraintJacobianType, const MooseVariableFEBase &)
Method for computing an off-diagonal jacobian component at quadrature points.
const std::string & type() const
Get the type of this class.
Base class for deriving any boundary condition of a integrated type.
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-ivar-residual / d-jvar...
void accumulateTaggedLocalMatrix()
Local Jacobian blocks will be appended by adding the current local kernel Jacobian.
const MooseArray< Real > & _coord
coordinate transformation
const std::set< SubdomainID > & boundaryLowerDBlocks() const
static InputParameters validParams()
Assembly & _assembly
Reference to this Kernel's assembly object.
const std::set< SubdomainID > & activeSubdomains() const
The subdomains the variable is active on.
void computeLowerDOffDiagJacobian(Moose::ConstraintJacobianType type, const unsigned int jvar_num)
Method for computing an off-diagonal jacobian component.
const QBase *const & _qrule
active quadrature rule
const VariablePhiValue & _phi_lambda
Shape functions.
virtual const FieldVariablePhiValue & phiLower() const override
Return the variable's shape functions on a lower-dimensional element.
void prepareMatrixTagLower(Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::ConstraintJacobianType type)
Prepare data for computing the jacobian according to the active tags for mortar.
DenseVector< Number > _local_re
Holds local residual entries as they are accumulated by this Kernel.
const MooseVariable & _lowerd_var
Variable this kernel operates on.
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...
virtual void computeResidual() override
Compute this object's contribution to the residual.
virtual void initLowerDQpOffDiagJacobian(Moose::ConstraintJacobianType, const MooseVariableFEBase &)
Put necessary evaluations depending on qp but independent on test and shape functions here for off-di...
void prepareVectorTagLower(Assembly &assembly, unsigned int ivar)
Prepare data for computing the residual according to active tags for mortar constraints.
virtual void computeResidual() override
Compute this object's contribution to the residual.
const MooseArray< Real > & _JxW
transformed Jacobian weights