MortarArchardsLawAux

Description

The MortarArchardsLawAux outputs the nodal worn-out depth based on a well-known wear equation by Archard. This auxiliary kernel computes nodal quantities which may depend on mortar quantities, i.e. variables that are the result of numerical integration over corresponding mortar segments. The wear velocity on the boundary may be defined as:

where is the frictional dissipation rate density, is the energy wear coefficient, is the local wear coefficient, is the normal contact pressure, is the coefficient of friction, and is the tangential relative velocity computed in the mortar sense. Potential applications of this mortar auxiliary kernel includes the modification of contacting surface shapes due to fretting wear.

Input example

Creation of auxiliary variables, i.e. nodal worn-out depth:

[worn_depth]
  block = '3'
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear.i)

Creation of auxiliary kernel for computing worn-out depth:

[worn_depth]
  type = MortarArchardsLawAux
  variable = worn_depth
  primary_boundary = 20
  secondary_boundary = 10
  primary_subdomain = 4
  secondary_subdomain = 3
  displacements = 'disp_x disp_y'
  friction_coefficient = 0.5
  energy_wear_coefficient = 1.0
  normal_pressure = normal_lm
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear.i)

Input Parameters

  • displacementsThe displacement variables. This mortar nodal auxiliary kernel can take two or three displacements

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The displacement variables. This mortar nodal auxiliary kernel can take two or three displacements

  • energy_wear_coefficientEnergy wear coefficient is a surface-dependent parameter used in Archard's wear law

    C++ Type:double

    Controllable:No

    Description:Energy wear coefficient is a surface-dependent parameter used in Archard's wear law

  • friction_coefficientFriction coefficient used to compute wear (to match that of frictional contact)

    C++ Type:double

    Controllable:No

    Description:Friction coefficient used to compute wear (to match that of frictional contact)

  • normal_pressureThe name of the Lagrange multiplier that holds the normal contact pressure in mortar formulations

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The name of the Lagrange multiplier that holds the normal contact pressure in mortar formulations

  • primary_boundaryThe name of the primary boundary sideset.

    C++ Type:BoundaryName

    Controllable:No

    Description:The name of the primary boundary sideset.

  • primary_subdomainThe name of the primary subdomain.

    C++ Type:SubdomainName

    Controllable:No

    Description:The name of the primary subdomain.

  • secondary_boundaryThe name of the secondary boundary sideset.

    C++ Type:BoundaryName

    Controllable:No

    Description:The name of the secondary boundary sideset.

  • secondary_subdomainThe name of the secondary subdomain.

    C++ Type:SubdomainName

    Controllable:No

    Description:The name of the secondary subdomain.

  • variableThe name of the variable that this object applies to

    C++ Type:AuxVariableName

    Controllable:No

    Description:The name of the variable that this object applies to

Required Parameters

  • check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

  • correct_edge_droppingFalseWhether to enable correct edge dropping treatment for mortar constraints. When disabled any Lagrange Multiplier degree of freedom on a secondary element without full primary contributions will be set (strongly) to 0.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to enable correct edge dropping treatment for mortar constraints. When disabled any Lagrange Multiplier degree of freedom on a secondary element without full primary contributions will be set (strongly) to 0.

  • debug_meshFalseWhether this constraint is going to enable mortar segment mesh debug information. An exodusfile will be generated if the user sets this flag to true

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this constraint is going to enable mortar segment mesh debug information. An exodusfile will be generated if the user sets this flag to true

  • execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS.

    Default:LINEAR TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS.

  • ghost_point_neighborsTrueWhether we should ghost point neighbors of secondary face elements, and consequently also their mortar interface couples.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether we should ghost point neighbors of secondary face elements, and consequently also their mortar interface couples.

  • incrementalTrueWhether to accumulate worn-out depth (The default 'true' is strongly recommended)

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to accumulate worn-out depth (The default 'true' is strongly recommended)

  • interpolate_normalsTrueWhether to interpolate the nodal normals (e.g. classic idea of evaluating field at quadrature points). If this is set to false, then non-interpolated nodal normals will be used, and then the _normals member should be indexed with _i instead of _qp

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to interpolate the nodal normals (e.g. classic idea of evaluating field at quadrature points). If this is set to false, then non-interpolated nodal normals will be used, and then the _normals member should be indexed with _i instead of _qp

  • periodicFalseWhether this constraint is going to be used to enforce a periodic condition. This has the effect of changing the normals vector for projection from outward to inward facing

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this constraint is going to be used to enforce a periodic condition. This has the effect of changing the normals vector for projection from outward to inward facing

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • vOptional variable to take the value of. If omitted the value of the `variable` itself is returned.

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:Optional variable to take the value of. If omitted the value of the `variable` itself is returned.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshTrueWhether to use the displaced mesh to compute the auxiliary kernel value

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to use the displaced mesh to compute the auxiliary kernel value

Advanced Parameters

Input Files