Contact Action

Description

ContactAction can be used to specify mechanical normal and tangential contact using several possible models: - frictionless - glued - coulomb (frictional) and formulations: - kinematic - penalty (normal and tangential) - augmented lagrange - mortar (normal with/without tangential)

Example Input syntax

For normal mortar contact:

[Contact]
  [frictionless]
    mesh = simple_mesh
    master = 2
    slave = 1
    formulation = mortar
    system = constraint
  []
[]
(modules/contact/test/tests/mechanical-small-problem/frictionless-nodal-lm-mortar-disp-action.i)

For normal and tangential (frictional) mortar contact:

[Contact]
  [frictional]
    mesh = revised_file_mesh
    master = 20
    slave = 10
    formulation = mortar
    system = constraint
    model = coulomb
    friction_coefficient = 0.1
  []
[]
(modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-fb-tangential-lm-mortar-action.i)

Input Parameters

  • masterThe master surface

    C++ Type:BoundaryName

    Options:

    Description:The master surface

  • slaveThe slave surface

    C++ Type:BoundaryName

    Options:

    Description:The slave surface

Required Parameters

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector

    Options:

    Description:If specified only the blocks named will be visited and made active

  • al_frictional_force_toleranceThe tolerance of the frictional force for augmented Lagrangian method.

    C++ Type:double

    Options:

    Description:The tolerance of the frictional force for augmented Lagrangian method.

  • al_incremental_slip_toleranceThe tolerance of the incremental slip for augmented Lagrangian method.

    C++ Type:double

    Options:

    Description:The tolerance of the incremental slip for augmented Lagrangian method.

  • al_penetration_toleranceThe tolerance of the penetration for augmented Lagrangian method.

    C++ Type:double

    Options:

    Description:The tolerance of the penetration for augmented Lagrangian method.

  • c_normal1Parameter for balancing the size of the gap and contact pressure

    Default:1

    C++ Type:double

    Options:

    Description:Parameter for balancing the size of the gap and contact pressure

  • c_tangential1Parameter for balancing the contact pressure and velocity

    Default:1

    C++ Type:double

    Options:

    Description:Parameter for balancing the contact pressure and velocity

  • capture_tolerance0Normal distance from surface within which nodes are captured

    Default:0

    C++ Type:double

    Options:

    Description:Normal distance from surface within which nodes are captured

  • disp_xThe x displacement

    C++ Type:VariableName

    Options:

    Description:The x displacement

  • disp_yThe y displacement

    C++ Type:VariableName

    Options:

    Description:The y displacement

  • disp_zThe z displacement

    C++ Type:VariableName

    Options:

    Description:The z displacement

  • displacementsThe displacements appropriate for the simulation geometry and coordinate system

    C++ Type:std::vector

    Options:

    Description:The displacements appropriate for the simulation geometry and coordinate system

  • formulationkinematicThe contact formulation

    Default:kinematic

    C++ Type:MooseEnum

    Options:kinematic penalty augmented_lagrange tangential_penalty mortar

    Description:The contact formulation

  • friction_coefficient0The friction coefficient

    Default:0

    C++ Type:double

    Options:

    Description:The friction coefficient

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector

    Options:

    Description:If specified blocks matching these identifiers will be skipped.

  • master_slave_jacobianTrueWhether to include Jacobian entries coupling master and slave nodes.

    Default:True

    C++ Type:bool

    Options:

    Description:Whether to include Jacobian entries coupling master and slave nodes.

  • meshThe mesh generator for mortar method

    C++ Type:MeshGeneratorName

    Options:

    Description:The mesh generator for mortar method

  • modelfrictionlessThe contact model to use

    Default:frictionless

    C++ Type:MooseEnum

    Options:frictionless glued coulomb

    Description:The contact model to use

  • normal_smoothing_distanceDistance from edge in parametric coordinates over which to smooth contact normal

    C++ Type:double

    Options:

    Description:Distance from edge in parametric coordinates over which to smooth contact normal

  • normal_smoothing_methodMethod to use to smooth normals

    C++ Type:MooseEnum

    Options:edge_based nodal_normal_based

    Description:Method to use to smooth normals

  • normalize_penaltyFalseWhether to normalize the penalty parameter with the nodal area.

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to normalize the penalty parameter with the nodal area.

  • orderFIRSTThe finite element order: FIRST, SECOND, etc.

    Default:FIRST

    C++ Type:MooseEnum

    Options:CONSTANT FIRST SECOND THIRD FOURTH

    Description:The finite element order: FIRST, SECOND, etc.

  • penalty1e+08The penalty to apply. This can vary depending on the stiffness of your materials

    Default:1e+08

    C++ Type:double

    Options:

    Description:The penalty to apply. This can vary depending on the stiffness of your materials

  • systemDiracKernelSystem to use for constraint enforcement

    Default:DiracKernel

    C++ Type:MooseEnum

    Options:DiracKernel Constraint

    Description:System to use for constraint enforcement

  • tangential_toleranceTangential distance to extend edges of contact surfaces

    C++ Type:double

    Options:

    Description:Tangential distance to extend edges of contact surfaces

  • tension_release0Tension release threshold. A node in contact will not be released if its tensile load is below this value. No tension release if negative.

    Default:0

    C++ Type:double

    Options:

    Description:Tension release threshold. A node in contact will not be released if its tensile load is below this value. No tension release if negative.

Optional Parameters