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
CreateMooseEnumClass
(ContactLMSpace, MATCH_DISPLACEMENT, LINEAR);
27
32
class
ContactAction
:
public
Action
33
{
34
public
:
35
static
InputParameters
validParams
();
36
37
ContactAction
(
const
InputParameters
& params);
38
39
virtual
void
act
()
override
;
40
41
using
Action::addRelationshipManagers
;
42
virtual
void
addRelationshipManagers
(
Moose::RelationshipManagerType
input_rm_type)
override
;
43
48
static
MooseEnum
getModelEnum
();
49
55
static
MooseEnum
getFormulationEnum
();
60
static
MooseEnum
getSystemEnum
();
61
66
static
MooseEnum
getSmoothingEnum
();
67
72
static
MooseEnum
getProximityMethod
();
73
78
static
InputParameters
commonParameters
();
79
80
protected
:
82
std::vector<std::pair<BoundaryName, BoundaryName>>
_boundary_pairs
;
83
85
std::vector<BoundaryName>
_automatic_pairing_boundaries
;
86
88
const
ContactModel
_model
;
89
91
const
ContactFormulation
_formulation
;
92
94
const
ContactLMSpace
_lm_space
;
95
97
bool
_use_dual
;
98
100
const
bool
_generate_mortar_mesh
;
101
103
const
bool
_mortar_dynamics
;
104
105
struct
MortarInfo
106
{
107
BoundaryID
primary_id
;
108
BoundaryID
secondary_id
;
109
std::string
uo_name
;
110
};
111
113
std::map<std::pair<BoundaryName, BoundaryName>,
const
MortarInfo
>
_bnd_pair_to_mortar_info
;
114
115
private
:
119
void
addMortarContact
();
123
void
addNodeFaceContact
();
127
void
addContactPressureAuxKernel
();
131
void
removeRepeatedPairs
();
136
void
createSidesetPairsFromGeometry
();
141
void
createSidesetsFromNodeProximity
();
142
};
ContactAction
Action class for creating constraints, kernels, and user objects necessary for mechanical contact...
Definition:
ContactAction.h:32
ContactAction::_boundary_pairs
std::vector< std::pair< BoundaryName, BoundaryName > > _boundary_pairs
Primary/Secondary boundary name pairs for mechanical contact.
Definition:
ContactAction.h:82
ContactAction::_automatic_pairing_boundaries
std::vector< BoundaryName > _automatic_pairing_boundaries
List of all possible boundaries for contact for automatic pairing (optional)
Definition:
ContactAction.h:85
ContactAction::getFormulationEnum
static MooseEnum getFormulationEnum()
Get contact formulation.
Definition:
ContactAction.C:1728
Moose::RelationshipManagerType
RelationshipManagerType
ContactAction::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType input_rm_type) override
Definition:
ContactAction.C:832
ContactAction::commonParameters
static InputParameters commonParameters()
Define parameters used by multiple contact objects.
Definition:
ContactAction.C:1785
Action.h
MooseEnum.h
ContactAction::removeRepeatedPairs
void removeRepeatedPairs()
Remove repeated contact pairs from _boundary_pairs.
Definition:
ContactAction.C:506
ContactAction::getSmoothingEnum
static MooseEnum getSmoothingEnum()
Get smoothing type.
Definition:
ContactAction.C:1779
ContactAction::getProximityMethod
static MooseEnum getProximityMethod()
Get proximity method for automatic pairing.
Definition:
ContactAction.C:1722
ContactAction::_formulation
const ContactFormulation _formulation
Contact formulation.
Definition:
ContactAction.h:91
ContactAction::act
virtual void act() override
Definition:
ContactAction.C:547
ContactAction::createSidesetPairsFromGeometry
void createSidesetPairsFromGeometry()
Create contact pairs between all boundaries whose centroids are within a user-specified distance of e...
Definition:
ContactAction.C:1598
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:113
InputParameters
MooseTypes.h
ContactAction::addMortarContact
void addMortarContact()
Generate mesh and other Moose objects for Mortar contact.
Definition:
ContactAction.C:868
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:100
ContactAction::addNodeFaceContact
void addNodeFaceContact()
Generate constraints for node to face contact.
Definition:
ContactAction.C:1371
BoundaryID
boundary_id_type BoundaryID
ContactAction::getSystemEnum
static MooseEnum getSystemEnum()
Get contact system.
Definition:
ContactAction.C:1773
MooseEnum
ContactAction::MortarInfo
Definition:
ContactAction.h:105
ContactAction::MortarInfo::secondary_id
BoundaryID secondary_id
Definition:
ContactAction.h:108
ContactAction::MortarInfo::primary_id
BoundaryID primary_id
Definition:
ContactAction.h:107
ContactAction::_mortar_dynamics
const bool _mortar_dynamics
Whether mortar dynamic contact constraints are to be used.
Definition:
ContactAction.h:103
ContactAction::ContactAction
ContactAction(const InputParameters ¶ms)
Definition:
ContactAction.C:347
ContactAction::addContactPressureAuxKernel
void addContactPressureAuxKernel()
Add single contact pressure auxiliary kernel for various contact action objects.
Definition:
ContactAction.C:762
ContactAction::MortarInfo::uo_name
std::string uo_name
Definition:
ContactAction.h:109
ContactAction::getModelEnum
static MooseEnum getModelEnum()
Get contact model.
Definition:
ContactAction.C:1716
ContactAction::createSidesetsFromNodeProximity
void createSidesetsFromNodeProximity()
Create contact pairs between all boundaries by determining that nodes on both boundaries are close en...
Definition:
ContactAction.C:1460
CreateMooseEnumClass
CreateMooseEnumClass(ContactModel, FRICTIONLESS, GLUED, COULOMB)
ContactAction::_use_dual
bool _use_dual
Whether to use the dual Mortar approach.
Definition:
ContactAction.h:97
Action::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType when_type)
ContactAction::_model
const ContactModel _model
Contact model type enum.
Definition:
ContactAction.h:88
ContactAction::_lm_space
const ContactLMSpace _lm_space
Finite element space to use for action-generated mortar Lagrange multiplier variables.
Definition:
ContactAction.h:94
ContactAction::validParams
static InputParameters validParams()
Definition:
ContactAction.C:73
Generated on Tue Jul 14 2026 14:53:49 for https://mooseframework.inl.gov by
1.8.14