crack propagation mesh cutting

35 views
Skip to first unread message

Van Dung Nguyen

unread,
Jun 3, 2019, 3:25:31 AM6/3/19
to mofem Group


Dear all,

I am a new user and I am trying to understand the source code of the crack propagation module of MoFEM. 

As I understand from the paper of authors (https://onlinelibrary.wiley.com/doi/10.1002/nme.4603), the modeling of the crack propagration does not need the mesh cutting, but the mesh can be adapted to follow the crack path by the movement of nodes without changing the mesh topololy. 

In MoFEM, there are two options for crack propagation with and without mesh cutting  (solveCutMesh(..) and solvePropagation(...)).
- If an intial crack exists already in the model, is the mesh cutting is necessary for crack propagation modeling (with -mesh_cut)? Or the crack propagtion can be resolved using only solvePropagation()?
- Clearly, the mesh-cutting is an efficient way to introduce the initial crack. Can you explain a bit why is mesh cutting used during crack propagation (solvePropagation() is called in  solveCutMesh() with two options -nb_cut_steps, -nb_load_steps)? 

Best regards,

Van Dung

Lukasz Kaczmraczyk

unread,
Jun 3, 2019, 3:37:54 AM6/3/19
to mofem Group


On Monday, June 3, 2019 at 8:25:31 AM UTC+1, Van Dung Nguyen wrote:


Dear all,

I am a new user and I am trying to understand the source code of the crack propagation module of MoFEM. 

As I understand from the paper of authors (https://onlinelibrary.wiley.com/doi/10.1002/nme.4603), the modeling of the crack propagration does not need the mesh cutting, but the mesh can be adapted to follow the crack path by the movement of nodes without changing the mesh topololy. 

The crack module is tricky to start learning how to code in mofem. We have made changes in the code since paper, to tackle complex geometries. In the new code, we propagate crack, i.e. displace nodes in material space at the crack front without changes of mesh topology. However, in some set number of load steps, for example, three load steps, we do mesh cutting to improve mesh quality.

 

In MoFEM, there are two options for crack propagation with and without mesh cutting  (solveCutMesh(..) and solvePropagation(...)).
- If an intial crack exists already in the model, is the mesh cutting is necessary for crack propagation modeling (with -mesh_cut)? Or the crack propagtion can be resolved using only solvePropagation()?

To make a crack to propagate, you have to provide mesh, and cutting mesh, and allow MoFEM to cut it for you. Yes solvePropagation is a function which does crack propagation.

 
- Clearly, the mesh-cutting is an efficient way to introduce the initial crack. Can you explain a bit why is mesh cutting used during crack propagation (solvePropagation() is called in  solveCutMesh() with two options -nb_cut_steps, -nb_load_steps)? 

Crack is propagated in -nb_load_steps, on each -nb_cut_steps mesh is cut again to improve mesh quality.

 
Regards,
Lukasz

Van Dung Nguyen

unread,
Jun 3, 2019, 4:04:29 AM6/3/19
to mofem...@googlegroups.com
Thanks for your response.

As I understand, if the mesh-cutting is used: (i) during iter < -nb_load_steps, crack propagation by displacing nodes in material space at the crack front without changes of mesh topology, (ii) at iter = -nb_load_steps, mesh is cut again to improve mesh quality, in this case, does It mean that both mesh cutting and displacing nodes are applied?

Can I use this module without mesh-cutting (with solvePropagation(...) only)? For example (i)  from a restart file, I can rerun an application with -mesh_cut 0 (but -mesh_cut 1 is used before)?  (ii) if an initial model has already a initial crack, Do I need to activate mesh cutting?

Best regards,

Van Dung

Lukasz Kaczmraczyk

unread,
Jun 3, 2019, 4:46:28 AM6/3/19
to mofem Group
Hello,

In the current implementation, is assumed that first crack is made by mesh cut.  If you cut mesh and then, set the load steps to a very large number, only nodes at the crack front will be moved, no mesh cutting. For example, in this scenario,  mesh cut will be after 1000 load steps.

## Steps and cutting
# number of cutting steps
-nb_cut_steps 100
# number of load steps between cutting
-nb_load_steps 100000

However, that will after some number of steps; mesh distortion will be so significant, that will lead to poor matrix conditioning, and Newton methods will diverge.

The code can be modified, that crack propagates on the front created directly on the mesh. However, that option is currently switched off.

Regards,
Lukasz


Van Dung Nguyen

unread,
Jun 3, 2019, 5:28:28 AM6/3/19
to mofem Group
It is clear for me, thanks a lot,

Regards,

Van Dung
Reply all
Reply to author
Forward
0 new messages