www.mooseframework.org
Classes | Enumerations | Functions
ContactMaster.h File Reference

Go to the source code of this file.

Classes

class  ContactMaster
 

Enumerations

enum  ContactModel { CM_INVALID, CM_FRICTIONLESS, CM_GLUED, CM_COULOMB }
 
enum  ContactFormulation {
  CF_INVALID, CF_DEFAULT, CF_KINEMATIC = CF_DEFAULT, CF_PENALTY,
  CF_AUGMENTED_LAGRANGE, CF_TANGENTIAL_PENALTY
}
 

Functions

ContactModel contactModel (const std::string &the_name)
 
ContactFormulation contactFormulation (const std::string &the_name)
 
template<>
InputParameters validParams< ContactMaster > ()
 

Enumeration Type Documentation

Enumerator
CF_INVALID 
CF_DEFAULT 
CF_KINEMATIC 
CF_PENALTY 
CF_AUGMENTED_LAGRANGE 
CF_TANGENTIAL_PENALTY 

Definition at line 22 of file ContactMaster.h.

Enumerator
CM_INVALID 
CM_FRICTIONLESS 
CM_GLUED 
CM_COULOMB 

Definition at line 14 of file ContactMaster.h.

Function Documentation

ContactFormulation contactFormulation ( const std::string &  the_name)
ContactModel contactModel ( const std::string &  the_name)
template<>
InputParameters validParams< ContactMaster > ( )

Definition at line 20 of file ContactMaster.C.

21 {
22  MooseEnum orders("CONSTANT FIRST SECOND THIRD FOURTH", "FIRST");
23 
24  InputParameters params = validParams<DiracKernel>();
25  params.addRequiredParam<BoundaryName>("boundary", "The master boundary");
26  params.addRequiredParam<BoundaryName>("slave", "The slave boundary");
27  params.addRequiredParam<unsigned int>("component",
28  "An integer corresponding to the direction "
29  "the variable this kernel acts in. (0 for x, "
30  "1 for y, 2 for z)");
31 
32  params.addCoupledVar("disp_x", "The x displacement");
33  params.addCoupledVar("disp_y", "The y displacement");
34  params.addCoupledVar("disp_z", "The z displacement");
35 
36  params.addCoupledVar(
37  "displacements",
38  "The displacements appropriate for the simulation geometry and coordinate system");
39 
40  params.addRequiredCoupledVar("nodal_area", "The nodal area");
41  params.addParam<std::string>("model", "frictionless", "The contact model to use");
42 
43  params.set<bool>("use_displaced_mesh") = true;
44  params.addParam<Real>(
45  "penalty",
46  1e8,
47  "The penalty to apply. This can vary depending on the stiffness of your materials");
48  params.addParam<Real>("friction_coefficient", 0, "The friction coefficient");
49  params.addParam<Real>("tangential_tolerance",
50  "Tangential distance to extend edges of contact surfaces");
51  params.addParam<Real>(
52  "capture_tolerance", 0, "Normal distance from surface within which nodes are captured");
53  params.addParam<Real>(
54  "normal_smoothing_distance",
55  "Distance from edge in parametric coordinates over which to smooth contact normal");
56  params.addParam<std::string>("normal_smoothing_method",
57  "Method to use to smooth normals (edge_based|nodal_normal_based)");
58  params.addParam<MooseEnum>("order", orders, "The finite element order");
59 
60  params.addParam<Real>("tension_release",
61  0.0,
62  "Tension release threshold. A node in contact "
63  "will not be released if its tensile load is below "
64  "this value. No tension release if negative.");
65 
66  params.addParam<std::string>("formulation", "default", "The contact formulation");
67  params.addParam<bool>(
68  "normalize_penalty",
69  false,
70  "Whether to normalize the penalty parameter with the nodal area for penalty contact.");
71  return params;
72 }