19 "PenaltyPeriodicSegmentalConstraint enforces macro-micro periodic conditions between "
20 "secondary and primary sides of a mortar interface using a penalty approach "
21 "(no Lagrange multipliers needed). Must be used alongside PenaltyEqualValueConstraint.");
22 params.
renameCoupledVar(
"scalar_variable",
"epsilon",
"Primary coupled scalar variable");
27 "Penalty value used to impose a generalized force capturing the mortar constraint equation");
37 _kappa_aux_ptr(getScalarVar(
"sigma", 0)),
38 _ka_order(_kappa_aux_ptr->order()),
39 _kappa_aux(coupledScalarValue(
"sigma")),
40 _pen_scale(getParam<Real>(
"penalty_value"))
44 "Must assign auxiliary scalar variable to sigma, rather than nonlinear variable");
71 RealVectorValue kappa_vec(
_kappa[0], 0, 0);
79 Real r =
_tau_s * (kappa_vec * dx);
106 RealVectorValue kappa_vec(
_kappa[0], 0, 0);
107 RealVectorValue kappa_aux_vec(
_kappa_aux[0], 0, 0);
121 r += dx(
_h) *
_tau_s * (kappa_vec * dx);
191 jac *= (*_phi)[
_j][
_qp] * dx(
_h);
194 jac *= -(*_phi)[
_j][
_qp] * dx(
_h);
registerMooseObject("MooseApp", PenaltyPeriodicSegmentalConstraint)
Interface class ("Veneer") to provide generator methods for derivative material property names.
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 ...
Moose::VarKindType kind() const
Kind of the variable (Nonlinear, Auxiliary, ...)
unsigned int number() const
Get variable number coming from libMesh.
MooseVariableField< Real > & _primary_var
Reference to the primary variable.
const VariableTestValue & _test_secondary
The shape functions corresponding to the secondary interior primal variable.
MooseVariableField< Real > & _secondary_var
Reference to the secondary variable.
const VariableTestValue & _test_primary
The shape functions corresponding to the primary interior primal variable.
const VariableValue & _u_secondary
The primal solution on the secondary side.
const VariableValue & _u_primary
The primal solution on the primary side.
const MooseArray< Point > & _phys_points_secondary
The locations of the quadrature points on the interior secondary elements.
const MooseArray< Point > & _phys_points_primary
The locations of the quadrature points on the interior primary elements.
std::vector< Point > _normals
the normals
This Constraint adds standardized methods for assembling to a primary scalar variable associated with...
const unsigned int _k_order
Order of the scalar variable, used in several places.
unsigned int _h
Used internally to iterate over each scalar component.
const unsigned int _kappa_var
The unknown scalar variable ID.
const VariableValue & _kappa
Reference to the current solution at the current quadrature point.
static InputParameters validParams()
This class enforces a periodic boundary condition between a microscale and macroscale field.
virtual void precalculateResidual() override
virtual Real computeScalarQpJacobian() override
Method for computing the scalar variable part of Jacobian at quadrature points.
void precalculateMaterial()
const Real _pen_scale
Input property from user as the value of the penalty parameter.
virtual Real computeQpResidual(Moose::MortarType mortar_type) override
Method for computing the residual at quadrature points.
const MooseVariableScalar *const _kappa_aux_ptr
(Pointer to) the controlled scalar variable
virtual Real computeScalarQpOffDiagJacobian(Moose::MortarType mortar_type, const unsigned int jvar) override
Method for computing d-_kappa-residual / d-_var at quadrature points.
void precalculateStability()
static InputParameters validParams()
Real _tau_s
The stability parameter for the method.
virtual Real computeScalarQpResidual() override
Method for computing the scalar part of residual at quadrature points.
virtual void precalculateJacobian() override
Real _temp_jump_global
the temperature jump in global and interface coordinates; TM-analogy: _displacement_jump_global,...
const VariableValue & _kappa_aux
The controlled scalar variable.
virtual void initScalarQpResidual() override
Put necessary evaluations depending on qp but independent of test functions here.
virtual Real computeQpOffDiagJacobianScalar(Moose::MortarType mortar_type, const unsigned int jvar) override
Method for computing d-_var-residual / d-_kappa at quadrature points.
PenaltyPeriodicSegmentalConstraint(const InputParameters ¶meters)