www.mooseframework.org
ContactAction.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "Action.h"
13 #include "MooseTypes.h"
14 #include "MooseEnum.h"
15 
16 enum class ContactModel
17 {
19  GLUED,
20  COULOMB,
21 };
22 
24 {
25  KINEMATIC,
26  PENALTY,
29  MORTAR
30 };
31 
32 class ContactAction;
33 
34 template <>
35 InputParameters validParams<ContactAction>();
36 
37 class ContactAction : public Action
38 {
39 public:
40  ContactAction(const InputParameters & params);
41 
42  virtual void act() override;
43 
44  using Action::addRelationshipManagers;
45  virtual void addRelationshipManagers(Moose::RelationshipManagerType input_rm_type) override;
46 
47  static MooseEnum getModelEnum();
48  static MooseEnum getFormulationEnum();
49  static MooseEnum getSystemEnum();
50  static MooseEnum getSmoothingEnum();
51 
52  static InputParameters commonParameters();
53 
54 protected:
55  const BoundaryName _master;
56  const BoundaryName _slave;
57  const MooseEnum _model;
58  const MooseEnum _formulation;
59  const MooseEnum _system;
60  const MeshGeneratorName _mesh_gen_name;
61 
62 private:
63  void addMortarContact();
64  void addNodeFaceContact();
65  void addDiracContact();
66 
67  std::vector<VariableName> getDisplacementVarNames();
68 };
ContactAction::ContactAction
ContactAction(const InputParameters &params)
Definition: ContactAction.C:92
ContactModel
ContactModel
Definition: ContactAction.h:16
ContactAction::_model
const MooseEnum _model
Definition: ContactAction.h:57
ContactFormulation::TANGENTIAL_PENALTY
ContactAction
Definition: ContactAction.h:37
ContactAction::act
virtual void act() override
Definition: ContactAction.C:136
ContactAction::getDisplacementVarNames
std::vector< VariableName > getDisplacementVarNames()
Definition: ContactAction.C:464
ContactModel::GLUED
ContactAction::_system
const MooseEnum _system
Definition: ContactAction.h:59
ContactFormulation::MORTAR
ContactAction::addNodeFaceContact
void addNodeFaceContact()
Definition: ContactAction.C:348
ContactFormulation::KINEMATIC
ContactAction::_formulation
const MooseEnum _formulation
Definition: ContactAction.h:58
ContactAction::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType input_rm_type) override
Definition: ContactAction.C:167
ContactModel::COULOMB
ContactModel::FRICTIONLESS
ContactAction::getSmoothingEnum
static MooseEnum getSmoothingEnum()
Definition: ContactAction.C:435
ContactAction::getFormulationEnum
static MooseEnum getFormulationEnum()
Definition: ContactAction.C:423
ContactAction::_master
const BoundaryName _master
Definition: ContactAction.h:55
ContactAction::_mesh_gen_name
const MeshGeneratorName _mesh_gen_name
Definition: ContactAction.h:60
ContactAction::getSystemEnum
static MooseEnum getSystemEnum()
Definition: ContactAction.C:429
ContactFormulation
ContactFormulation
Definition: ContactAction.h:23
ContactAction::_slave
const BoundaryName _slave
Definition: ContactAction.h:56
ContactAction::getModelEnum
static MooseEnum getModelEnum()
Definition: ContactAction.C:417
ContactFormulation::AUGMENTED_LAGRANGE
ContactAction::addMortarContact
void addMortarContact()
Definition: ContactAction.C:174
ContactAction::addDiracContact
void addDiracContact()
Definition: ContactAction.C:374
ContactAction::commonParameters
static InputParameters commonParameters()
Definition: ContactAction.C:441
validParams< ContactAction >
InputParameters validParams< ContactAction >()
Definition: ContactAction.C:32
ContactFormulation::PENALTY