mesh_module deform

Purpose

Command for enabling mesh deformation due to wearing.

Syntax

mesh_module deform keyword value

Keywords:

Keyword

Description

id

obligatory, user-defined name for the mesh module

scaling

rate with which the mesh is scaled, either a constant or a variable.

Examples

mesh_module deform id my_deform
mesh_module deform id my_deform scaling 0.1
mesh_module deform id my_deform scaling v_scale

Description

This module deform the mesh based on the wear that it experiences if the scaling keyword is not set. In cases it is set, the mesh is continuously scaled with the defined scale_rate. scale_rate can be a variable or a constant.

If scaling is not set, it is mandatory that stresses and wear are tracked, i.e. stress = on, and wear_model = finnie or archard is mandatory (detailed description in mesh_module wear)

The deformation is calculated as follows: (i) the (scalar) wear on each mesh element is calculated (ii) the wear is distributed to each node of the element based on the barycentric coordinates of the contact point that causes the (scalar wear), (iii) the scalar wear is multiplied with the surface normal of each element, which gives a deformation vector for each node, (iv) a summation is performed that adds up all deformation vectors over neighboring triangles so that the resulting deformation vector is the sum of contributions of all elements that share a certain node.

Note

This feature requires to store a list of “node neighbors, i.e. elements that share the same node. Since ghost mesh elements are optimized for performance of particle-wall contacts, not all ghost mesh elements that are required for the summation of deformation vectors are available on each process locally. Thus, this module uses a combined communication approach (regular communication for elements that are available and allreduce communication for elements that are too far away). The allreduce part may not perform linearly in parallel, but should always be the smaller part of communication.

Warning

When using this module and periodic boundary conditions the mesh needs to fulfill the following properties: (i) a triangle is not allowed to be in contact with itself through periodic boundaries, (ii) if two triangles are in contact inside the domain, they are not allowed to be in contact through periodic boundaries. Note that these restrictions are not validated by Aspherix(R) and must be ensured by the user.

Additional information

See mesh command.

Restrictions

This mesh module requires the usage of mesh_module wear and that module needs to precede the deform module.