- 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
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
- 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
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