www.mooseframework.org
contact
include
actions
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
{
18
FRICTIONLESS
,
19
GLUED
,
20
COULOMB
21
};
22
23
enum class
ContactFormulation
24
{
25
RANFS
,
26
KINEMATIC
,
27
PENALTY
,
28
AUGMENTED_LAGRANGE
,
29
TANGENTIAL_PENALTY
,
30
MORTAR
,
31
MORTAR_PENALTY
32
};
33
34
enum class
ProximityMethod
35
{
36
NODE
,
37
CENTROID
38
};
39
44
class
ContactAction
:
public
Action
45
{
46
public
:
47
static
InputParameters
validParams
();
48
49
ContactAction
(
const
InputParameters
& params);
50
51
virtual
void
act
()
override
;
52
53
using
Action::addRelationshipManagers
;
54
virtual
void
addRelationshipManagers
(
Moose::RelationshipManagerType
input_rm_type)
override
;
55
60
static
MooseEnum
getModelEnum
();
61
67
static
MooseEnum
getFormulationEnum
();
72
static
MooseEnum
getSystemEnum
();
73
78
static
MooseEnum
getSmoothingEnum
();
79
84
static
MooseEnum
getProximityMethod
();
85
90
static
InputParameters
commonParameters
();
91
92
protected
:
94
std::vector<std::pair<BoundaryName, BoundaryName>>
_boundary_pairs
;
95
97
std::vector<BoundaryName>
_automatic_pairing_boundaries
;
98
100
const
ContactModel
_model
;
101
103
const
ContactFormulation
_formulation
;
104
106
bool
_use_dual
;
107
109
const
bool
_generate_mortar_mesh
;
110
112
const
bool
_mortar_dynamics
;
113
114
private
:
118
void
addMortarContact
();
122
void
addNodeFaceContact
();
126
void
addContactPressureAuxKernel
();
130
void
removeRepeatedPairs
();
135
void
createSidesetPairsFromGeometry
();
140
void
createSidesetsFromNodeProximity
();
141
};
ContactAction
Action class for creating constraints, kernels, and user objects necessary for mechanical contact...
Definition:
ContactAction.h:44
ContactModel::GLUED
ContactAction::_boundary_pairs
std::vector< std::pair< BoundaryName, BoundaryName > > _boundary_pairs
Primary/Secondary boundary name pairs for mechanical contact.
Definition:
ContactAction.h:94
ContactAction::_automatic_pairing_boundaries
std::vector< BoundaryName > _automatic_pairing_boundaries
List of all possible boundaries for contact for automatic pairing (optional)
Definition:
ContactAction.h:97
ContactAction::getFormulationEnum
static MooseEnum getFormulationEnum()
Get contact formulation.
Definition:
ContactAction.C:1509
Moose::RelationshipManagerType
RelationshipManagerType
ContactAction::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType input_rm_type) override
Definition:
ContactAction.C:681
ContactFormulation::PENALTY
ContactFormulation::RANFS
ContactModel::COULOMB
ContactAction::commonParameters
static InputParameters commonParameters()
Define parameters used by multiple contact objects.
Definition:
ContactAction.C:1568
Action.h
ContactFormulation::TANGENTIAL_PENALTY
ProximityMethod
ProximityMethod
Definition:
ContactAction.h:34
ProximityMethod::CENTROID
MooseEnum.h
ContactAction::removeRepeatedPairs
void removeRepeatedPairs()
Remove repeated contact pairs from _boundary_pairs.
Definition:
ContactAction.C:408
ContactFormulation::KINEMATIC
ContactAction::getSmoothingEnum
static MooseEnum getSmoothingEnum()
Get smoothing type.
Definition:
ContactAction.C:1562
ContactAction::getProximityMethod
static MooseEnum getProximityMethod()
Get proximity method for automatic pairing.
Definition:
ContactAction.C:1503
ContactAction::_formulation
const ContactFormulation _formulation
Contact formulation.
Definition:
ContactAction.h:103
ContactAction::act
virtual void act() override
Definition:
ContactAction.C:449
ContactFormulation::AUGMENTED_LAGRANGE
ContactAction::createSidesetPairsFromGeometry
void createSidesetPairsFromGeometry()
Create contact pairs between all boundaries whose centroids are within a user-specified distance of e...
Definition:
ContactAction.C:1379
ContactFormulation::MORTAR_PENALTY
Action
ContactFormulation::MORTAR
InputParameters
MooseTypes.h
ContactModel::FRICTIONLESS
ContactAction::addMortarContact
void addMortarContact()
Generate mesh and other Moose objects for Mortar contact.
Definition:
ContactAction.C:701
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:109
ContactAction::addNodeFaceContact
void addNodeFaceContact()
Generate constraints for node to face contact.
Definition:
ContactAction.C:1152
ContactAction::getSystemEnum
static MooseEnum getSystemEnum()
Get contact system.
Definition:
ContactAction.C:1556
MooseEnum
ContactFormulation
ContactFormulation
Definition:
ContactAction.h:23
ContactAction::_mortar_dynamics
const bool _mortar_dynamics
Whether mortar dynamic contact constraints are to be used.
Definition:
ContactAction.h:112
ContactAction::ContactAction
ContactAction(const InputParameters ¶ms)
Definition:
ContactAction.C:279
ContactAction::addContactPressureAuxKernel
void addContactPressureAuxKernel()
Add single contact pressure auxiliary kernel for various contact action objects.
Definition:
ContactAction.C:635
ContactAction::getModelEnum
static MooseEnum getModelEnum()
Get contact model.
Definition:
ContactAction.C:1497
ContactAction::createSidesetsFromNodeProximity
void createSidesetsFromNodeProximity()
Create contact pairs between all boundaries by determining that nodes on both boundaries are close en...
Definition:
ContactAction.C:1241
ProximityMethod::NODE
ContactAction::_use_dual
bool _use_dual
Whether to use the dual Mortar approach.
Definition:
ContactAction.h:106
ContactModel
ContactModel
Definition:
ContactAction.h:16
Action::addRelationshipManagers
virtual void addRelationshipManagers(Moose::RelationshipManagerType when_type)
ContactAction::_model
const ContactModel _model
Contact model type enum.
Definition:
ContactAction.h:100
ContactAction::validParams
static InputParameters validParams()
Definition:
ContactAction.C:72
Generated on Wed Mar 27 2024 17:58:55 for www.mooseframework.org by
1.8.14