www.mooseframework.org
Functions
MechanicalContactConstraint.C File Reference

Go to the source code of this file.

Functions

template<>
InputParameters validParams< MechanicalContactConstraint > ()
 

Function Documentation

template<>
InputParameters validParams< MechanicalContactConstraint > ( )

Definition at line 28 of file MechanicalContactConstraint.C.

29 {
30  MooseEnum orders(AddVariableAction::getNonlinearVariableOrders());
31 
32  InputParameters params = validParams<NodeFaceConstraint>();
33  params.addRequiredParam<BoundaryName>("boundary", "The master boundary");
34  params.addRequiredParam<BoundaryName>("slave", "The slave boundary");
35  params.addRequiredParam<unsigned int>("component",
36  "An integer corresponding to the direction "
37  "the variable this kernel acts in. (0 for x, "
38  "1 for y, 2 for z)");
39 
40  params.addCoupledVar("disp_x", "The x displacement");
41  params.addCoupledVar("disp_y", "The y displacement");
42  params.addCoupledVar("disp_z", "The z displacement");
43 
44  params.addCoupledVar(
45  "displacements",
46  "The displacements appropriate for the simulation geometry and coordinate system");
47 
48  params.addRequiredCoupledVar("nodal_area", "The nodal area");
49  params.addParam<std::string>("model", "frictionless", "The contact model to use");
50 
51  params.set<bool>("use_displaced_mesh") = true;
52  params.addParam<Real>(
53  "penalty",
54  1e8,
55  "The penalty to apply. This can vary depending on the stiffness of your materials");
56  params.addParam<Real>("friction_coefficient", 0, "The friction coefficient");
57  params.addParam<Real>("tangential_tolerance",
58  "Tangential distance to extend edges of contact surfaces");
59  params.addParam<Real>(
60  "capture_tolerance", 0, "Normal distance from surface within which nodes are captured");
61  params.addParam<Real>(
62  "normal_smoothing_distance",
63  "Distance from edge in parametric coordinates over which to smooth contact normal");
64  params.addParam<std::string>("normal_smoothing_method",
65  "Method to use to smooth normals (edge_based|nodal_normal_based)");
66  params.addParam<MooseEnum>("order", orders, "The finite element order");
67 
68  params.addParam<Real>("tension_release",
69  0.0,
70  "Tension release threshold. A node in contact "
71  "will not be released if its tensile load is below "
72  "this value. No tension release if negative.");
73 
74  params.addParam<std::string>("formulation", "default", "The contact formulation");
75  params.addParam<bool>(
76  "normalize_penalty",
77  false,
78  "Whether to normalize the penalty parameter with the nodal area for penalty contact.");
79  params.addParam<bool>("master_slave_jacobian",
80  true,
81  "Whether to include jacobian entries coupling master and slave nodes.");
82  params.addParam<bool>(
83  "connected_slave_nodes_jacobian",
84  true,
85  "Whether to include jacobian entries coupling nodes connected to slave nodes.");
86  params.addParam<bool>("non_displacement_variables_jacobian",
87  true,
88  "Whether to include jacobian "
89  "entries coupling with "
90  "variables that are not "
91  "displacement variables.");
92  params.addParam<unsigned int>("stick_lock_iterations",
93  std::numeric_limits<unsigned int>::max(),
94  "Number of times permitted to switch between sticking and slipping "
95  "in a solution before locking node in a sticked state.");
96  params.addParam<Real>("stick_unlock_factor",
97  1.5,
98  "Factor by which frictional capacity must be "
99  "exceeded to permit stick-locked node to slip "
100  "again.");
101  params.addParam<Real>("al_penetration_tolerance",
102  "The tolerance of the penetration for augmented Lagrangian method.");
103  params.addParam<Real>("al_incremental_slip_tolerance",
104  "The tolerance of the incremental slip for augmented Lagrangian method.");
105 
106  params.addParam<Real>("al_frictional_force_tolerance",
107  "The tolerance of the frictional force for augmented Lagrangian method.");
108  return params;
109 }