3. Level-set update#
After propagation, the geometry of the crack changes and the level-sets must evolve to properly describe this new geometry. Even if you can recalculate the level-sets using their signed distance definition, in practice this solution should be avoided for performance reasons.
Level-sets can be recalculated more quickly by using level-set updating equations that describe their evolution as a result of crack propagation.
In the following equations, the symbols \({\mathrm{\varphi }}_{n}\), \({\mathrm{\varphi }}_{t}\), and \(\mathrm{\varphi }\) will be used to indicate the normal level-set (\(\mathit{lsn}\)), the tangent level-set (\(\mathit{lst}\)), and a level-set in general (\(\mathit{lsn}\) or \(\mathit{lst}\)) respectively.
3.1. Update equations#
Level-sets are updated on all nodes according to the following Hamilton-Jacobi equation (bib 1):
: label: eq-28
frac {partialmathrm {varphi}}} {partial t}} {partial t} =- {V} _ {mathrm {varphi}}cdotVertnablamathrm {varphi}Vert
Where \(\mathrm{\varphi }\) is the level-set, \(\nabla \mathrm{\varphi }\) is its gradient, and \({V}_{\mathrm{\varphi }}\) is the propagation speed of the level-set \(\mathrm{\varphi }\) (\({V}_{T}\) or \({V}_{N}\)). This equation is known as the evolution equation for level-sets. In (bib 13) and (bib 14) it is shown that an error is present in this formulation of the equation and that the correct form to use is instead the following:
Integrating the equation poses several problems (bib 14):
The number of integration iterations is important if an explicit schema is used (for example Runge-Kutta) because of the limitation on the usable time step at each iteration (condition CFL). The adjustment of the normal speed field ([§ 2.5]) is at the origin of the very strong decrease in the maximum value of the usable time step and therefore of the increment in the number of iterations required. To avoid this problem, an implicit schema can be used but this complicates programming. As a third alternative, one can use a « fast marching method » method (bib 3) that calculates the solution directly and without iterations (bib 15, bib 16). However, errors may be present in the solution calculated by this last method at the edges of the calculation domain (bib 15, bib 16).
In the presence of a high value of the propagation angle \(\beta\) ([§ 2.1]), the solution obtained by integrating the level-set equation may present instabilities that will disturb the convergence of the integration algorithms during successive propagation iterations.
The instabilities mentioned above lead to a high numerical sensitivity of the method to rounded errors, which leads to a significant variation in the results between machines. This behavior is not desirable in an industrial use of the method.
An alternative update equation is therefore proposed in (bib 14). It is based on the geometric interpretation of the modification of the level-sets resulting from the propagation of the crack. If we look at the iso-zero of the tangent level-set (\(\mathit{lst}\mathrm{=}0\) in the figure), we can say that each point on this surface moves by the quantity \({V}_{T}\mathrm{\cdot }\Delta t\). As a result, the level-set value at the point decreases by the same amount. If we look at the iso-zero of the normal level-set (\(\mathit{lsn}\mathrm{=}0\) in the figure), we can say that in the part of the volume of healthy material (\(\mathit{lst}>0\)) the level-set is subjected to a rotation around the crack bottom and that each point moves in the direction normal to the iso-zero of a quantity \({V}_{N}\mathrm{\cdot }\Delta t\). It is the linear variation of speed \({V}_{N}\) with \(\mathit{lst}\) ([§ 2.5]) that makes it possible to obtain the correct displacement at each point. By generalizing to the 3D case as in (bib 14), we can therefore write the following update equations:
: label: eq-30
mathrm {Delta} {mathrm {varphi}}} _ {varphi}}} _ {n} =-left ({V} _ {N}cdotnabla {mathrm {varphi}}}} _ {varphi}}} _ {n}right)cdotmathrm {Delta} t
The advantage of these equations is obvious: they are explicit algebraic equations that do not require the use of any iterative integration scheme. The solution can be calculated directly with a very low calculation time. Moreover, no instability problems are present even for high propagation angles \(\beta\) as shown in (bib 14).
The value of \(\Delta t\) to be used in the level-set update equations can be easily calculated from the maximum \(\Delta {a}_{\mathit{max}}\) advance of the crack given by the user:
: label: eq-31
Delta {t} _ {mathit {tot}}} =frac {delta {a}} _ {mathit {max}}} {underset {iinmathit {bottom}} {mathit {bottom}}} {mathit {max}}} {mathit {max}}} =frac {delta {a} _ {max}}} {underset {i}background}} {mathit {fond}}} {mathit {bottom}}} {mathit {max}}} {mathit {max}}} {mathit {max}}
Where the vector \(V({x}_{i})\) is the vector of the propagation speed (\(V\mathrm{=}{V}_{N}+{V}_{T}\)) of a point \({x}_{i}\) on the crack bottom. It should be noted that, in this context, we take as the point of the crack bottom the physical points at the intersection between the crack bottom and the faces of the elements of the mesh, for which the speed and the angle of propagation are known, but that we also take the geometric points of the front which are the normal projection of the nodes of the mesh on the front itself [§ 2.2]. However, the propagation speed is calculated for these last points using linear interpolation [§ 2.2] and for each edge that forms the crack bottom the maximum speed is obtained at one of its two ends. It is therefore possible to limit the search for the maximum speed to the points of intersection between the crack bottom and the faces of the elements of the mesh.
Note:
In the description above, the symbols \(t\) and \(\Delta t\) were used to indicate time. However, the quantity described by these symbols is actually the number of fatigue cycles that cause the crack to advance. In fact, if we look at the equation used above for the calculation of \(\Delta t\) * , \(\Delta t\) is obtained by dividing the advance distance of the crack (for example: millimeters) and the advance speed. The speed calculated using a law of propagation (for example the Paris law) is given as an advance of the crack per fatigue cycle (for example: millimeters/cycle). We therefore deduce that \(\Delta t\) represents the number of fatigue cycles that must be applied to have the maximum desired progress. The link between the number of fatigue cycles and the time is given by the frequency of application of the load.
This is true for all the equations used and we can say that all the quantities that come down to time ( \(t\) , \(\Delta t\) ,…) in fact express a number of fatigue cycles.