https://mooseframework.inl.gov
MortarGenericTraction.C
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 #include "MortarGenericTraction.h"
12 
14 
17 {
19 
20  MooseEnum component("x=0 y=1 z=2");
22  "component", component, "The force component constraint that this object is supplying");
23  params.addClassDescription(
24  "Used to apply tangential stresses from frictional contact using lagrange multipliers");
25  params.addRequiredParam<UserObjectName>("cohesive_zone_uo", "The cohesive zone user object.");
26  params.set<bool>("interpolate_normals") = false;
27  params.set<bool>("compute_lm_residual") = false;
28  return params;
29 }
30 
32  : ADMortarLagrangeConstraint(parameters),
33  _component(getParam<MooseEnum>("component")),
34  _cohesize_zone_uo(const_cast<BilinearMixedModeCohesiveZoneModel &>(
35  getUserObject<BilinearMixedModeCohesiveZoneModel>("cohesive_zone_uo")))
36 {
37 }
38 
39 ADReal
41 {
42  switch (type)
43  {
48 
49  default:
50  return 0;
51  }
52 }
const MooseEnum _component
Displacement component on which the residual will be computed.
const VariableTestValue & _test_secondary
static const std::string component
Definition: NS.h:153
T & set(const std::string &name, bool quiet_mode=false)
virtual const ADVariableValue & czmGlobalTraction(unsigned int i) const
unsigned int _i
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("ContactApp", MortarGenericTraction)
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
This class enforces mortar constraints on lower dimensional domains, skipping interior nodes...
MortarGenericTraction(const InputParameters &parameters)
const std::string & type() const
User object that interface pressure resulting from a simple traction separation law.
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()
ADReal computeQpResidual(Moose::MortarType type) final
const BilinearMixedModeCohesiveZoneModel & _cohesize_zone_uo
The cohesive zone user object that provides the surface traction.
const VariableTestValue & _test_primary
unsigned int _qp