19 "ADPenaltyPeriodicSegmentalConstraint 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");
108 RealVectorValue kappa_aux_vec(
_kappa_aux[0], 0, 0);
126 r += dx(
_h) *
_tau_s * (kappa_vec * dx);
registerMooseObject("MooseApp", ADPenaltyPeriodicSegmentalConstraint)
DualNumber< Real, DNDerivativeType, true > ADReal
const ADVariableValue & _u_secondary
The primal solution on the secondary side.
const ADVariableValue & _u_primary
The primal solution on the primary side.
This Constraint adds standardized methods for assembling to a primary scalar variable associated with...
static InputParameters validParams()
const MooseVariableScalar *const _kappa_var_ptr
(Pointer to) Scalar variable this kernel operates on
const ADVariableValue & _kappa
Reference to the current solution at the current quadrature point.
unsigned int _h
Used internally to iterate over each scalar component.
const unsigned int _k_order
Order of the scalar variable, used in several places.
This class enforces a periodic boundary condition between a microscale and macroscale field.
void precalculateStability()
Compute penalty parameter.
ADReal _temp_jump_global
the temperature jump in global and interface coordinates; TM-analogy: _displacement_jump_global,...
const MooseVariableScalar *const _kappa_aux_ptr
(Pointer to) the controlled scalar variable
static InputParameters validParams()
virtual void precalculateResidual() override
virtual ADReal computeQpResidual(Moose::MortarType mortar_type) override
Method for computing the residual at quadrature points.
void precalculateMaterial()
Compute concentration jump before quadrature loop.
const VariableValue & _kappa_aux
The controlled scalar variable.
ADPenaltyPeriodicSegmentalConstraint(const InputParameters ¶meters)
virtual ADReal computeScalarQpResidual() override
Method for computing the scalar part of residual at quadrature points.
const Real _pen_scale
Input property from user as the value of the penalty parameter.
Real _tau_s
The stability parameter for the method.
virtual void initScalarQpResidual() override
Put necessary evaluations depending on qp but independent of test functions here.
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 ...
virtual const std::vector< dof_id_type > & dofIndices() const
Get local DoF indices.
Moose::VarKindType kind() const
Kind of the variable (Nonlinear, Auxiliary, ...)
const VariableTestValue & _test_secondary
The shape functions corresponding to the secondary interior primal variable.
const VariableTestValue & _test_primary
The shape functions corresponding to the primary interior primal variable.
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
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N > > &derivs, libMesh::dof_id_type index, Real value)