https://mooseframework.inl.gov
contact
include
actions
ContactAction.h
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
#pragma once
11
12
#include "
Action.h
"
13
#include "
MooseTypes.h
"
14
#include "
MooseEnum.h
"
15
16
CreateMooseEnumClass
(ContactModel, FRICTIONLESS, GLUED, COULOMB);
17
CreateMooseEnumClass
(ContactFormulation,
18
RANFS,
19
KINEMATIC,
20
PENALTY,
21
AUGMENTED_LAGRANGE,
22
TANGENTIAL_PENALTY,
23
MORTAR,
24
MORTAR_PENALTY);
25
CreateMooseEnumClass
(ProximityMethod, NODE, CENTROID);
26
31
class
ContactAction
:
public
Action
32
{
33
public
:
34
static
InputParameters
validParams
();
35
36
ContactAction
(
const
InputParameters
& params);
37
38
virtual
void
act
()
override
;
39
40
using
Action::addRelationshipManagers
;
41
virtual
void
addRelationshipManagers
(
Moose::RelationshipManagerType
input_rm_type)
override
;
42
47
static
MooseEnum
getModelEnum
();
48
54
static
MooseEnum
getFormulationEnum
();
59
static
MooseEnum
getSystemEnum
();
60
65
static
MooseEnum
getSmoothingEnum
();
66
71
static
MooseEnum
getProximityMethod
();
72
77
static
InputParameters
commonParameters
();
78
79
protected
:
81
std::vector<std::pair<BoundaryName, BoundaryName>>
_boundary_pairs
;
82
84
std::vector<BoundaryName>
_automatic_pairing_boundaries
;
85
87
const
ContactModel
_model
;
88
90
const
ContactFormulation
_formulation
;
91
93
bool
_use_dual
;
94
96
const
bool
_generate_mortar_mesh
;
97
99
const
bool
_mortar_dynamics
;
100
101
struct
MortarInfo
102
{
103
BoundaryID
primary_id
;
104
BoundaryID
secondary_id
;
105
std::string
uo_name
;
106
};
107
109
std::map<std::pair<BoundaryName, BoundaryName>,
const
MortarInfo
>
_bnd_pair_to_mortar_info
;
110
111
private
:
115
void
addMortarContact
();
119
void
addNodeFaceContact
();
123
void
addContactPressureAuxKernel
();
127
void
removeRepeatedPairs
();
132
void
createSidesetPairsFromGeometry
();
137
void
createSidesetsFromNodeProximity
();
138
};
ContactAction
Action class for creating constraints, kernels, and user objects necessary for mechanical contact...
Definition:
ContactAction.h:31
ContactAction::_boundary_pairs
std::vector< std::pair< BoundaryName, BoundaryName > > _boundary_pairs
Primary/Secondary boundary name pairs for mechanical contact.
Definition:
ContactAction.h:81
ContactAction::_automatic_pairing_boundaries
std::vector< BoundaryName > _automatic_pairing_boundaries
List of all possible boundaries for contact for automatic pairing (optional)
Definition:
ContactAction.h:84
ContactAction::getFormulationEnum
static MooseEnum getFormulationEnum()
Get contact formulation.
Definition:
ContactAction.C:1591
Moose::RelationshipManagerType
RelationshipManagerType
ContactAction::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType input_rm_type) override
Definition:
ContactAction.C:740
ContactAction::commonParameters
static InputParameters commonParameters()
Define parameters used by multiple contact objects.
Definition:
ContactAction.C:1648
Action.h
MooseEnum.h
ContactAction::removeRepeatedPairs
void removeRepeatedPairs()
Remove repeated contact pairs from _boundary_pairs.
Definition:
ContactAction.C:423
ContactAction::getSmoothingEnum
static MooseEnum getSmoothingEnum()
Get smoothing type.
Definition:
ContactAction.C:1642
ContactAction::getProximityMethod
static MooseEnum getProximityMethod()
Get proximity method for automatic pairing.
Definition:
ContactAction.C:1585
ContactAction::_formulation
const ContactFormulation _formulation
Contact formulation.
Definition:
ContactAction.h:90
ContactAction::act
virtual void act() override
Definition:
ContactAction.C:464
ContactAction::createSidesetPairsFromGeometry
void createSidesetPairsFromGeometry()
Create contact pairs between all boundaries whose centroids are within a user-specified distance of e...
Definition:
ContactAction.C:1461
Action
ContactAction::_bnd_pair_to_mortar_info
std::map< std::pair< BoundaryName, BoundaryName >, const MortarInfo > _bnd_pair_to_mortar_info
Map from boundary pair to mortar user object name.
Definition:
ContactAction.h:109
InputParameters
MooseTypes.h
ContactAction::addMortarContact
void addMortarContact()
Generate mesh and other Moose objects for Mortar contact.
Definition:
ContactAction.C:760
ContactAction::_generate_mortar_mesh
const bool _generate_mortar_mesh
Whether to generate the mortar mesh (useful in a restart simulation e.g.).
Definition:
ContactAction.h:96
ContactAction::addNodeFaceContact
void addNodeFaceContact()
Generate constraints for node to face contact.
Definition:
ContactAction.C:1234
BoundaryID
boundary_id_type BoundaryID
ContactAction::getSystemEnum
static MooseEnum getSystemEnum()
Get contact system.
Definition:
ContactAction.C:1636
MooseEnum
ContactAction::MortarInfo
Definition:
ContactAction.h:101
ContactAction::MortarInfo::secondary_id
BoundaryID secondary_id
Definition:
ContactAction.h:104
ContactAction::MortarInfo::primary_id
BoundaryID primary_id
Definition:
ContactAction.h:103
ContactAction::_mortar_dynamics
const bool _mortar_dynamics
Whether mortar dynamic contact constraints are to be used.
Definition:
ContactAction.h:99
ContactAction::ContactAction
ContactAction(const InputParameters ¶ms)
Definition:
ContactAction.C:285
ContactAction::addContactPressureAuxKernel
void addContactPressureAuxKernel()
Add single contact pressure auxiliary kernel for various contact action objects.
Definition:
ContactAction.C:670
ContactAction::MortarInfo::uo_name
std::string uo_name
Definition:
ContactAction.h:105
ContactAction::getModelEnum
static MooseEnum getModelEnum()
Get contact model.
Definition:
ContactAction.C:1579
ContactAction::createSidesetsFromNodeProximity
void createSidesetsFromNodeProximity()
Create contact pairs between all boundaries by determining that nodes on both boundaries are close en...
Definition:
ContactAction.C:1323
CreateMooseEnumClass
CreateMooseEnumClass(ContactModel, FRICTIONLESS, GLUED, COULOMB)
ContactAction::_use_dual
bool _use_dual
Whether to use the dual Mortar approach.
Definition:
ContactAction.h:93
Action::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType when_type)
ContactAction::_model
const ContactModel _model
Contact model type enum.
Definition:
ContactAction.h:87
ContactAction::validParams
static InputParameters validParams()
Definition:
ContactAction.C:72
Generated on Wed Jun 24 2026 08:24:07 for https://mooseframework.inl.gov by
1.8.14