***xfem_crack_mode
#
Description#
This command allows the use of XFEM enriched elements, in order to model the influence of a discontinuity (crack) on mechanical fields, without the need to explicitly introduce this crack in the FE mesh. Note that the graphical interactive Zxfem script can be used to handle Xfem models, and automatically generate input data for this command.
In this context the crack is defined by 2 levelsets, \(\phi\)
(signed distance to the crack plane) and \(\psi\) (signed distance
to the front of the projection on the crack plane). The
**compute_predefined_levelset
mesher command can be used to generate
such levelsets for basic crack geometries (see page . Let \(I\) be a
set containing all nodes in the FE mesh, we then define 2 subsets
\(J\) and \(K\) of \(I\) (see figure below):
\(J \subset I\) correspond to nodes in elements \(E\) completely cut by by the crack (\(\phi\) is changing sign on \(E\), but sign of \(\phi\) is constant),
\(K \subset I\) correspond to nodes in elements that include the crack front (both \(\phi\) and \(psi\) are changing sign on \(E\)).
Enriched shape functions are then defined in the following way:
where:
\(\phi_i(x)\) denote the shape functions of classical (ie. not enriched) finite elements and \(u_i\) the conventional displacement degrees of freedom (\(i=1,N_E\), where \(N_E\) is the number of nodes of element \(E\))
\(H_i(x)\) are shape functions taking a value of \(1\) on one side of the crack, and \(-1\) on the other. They are used to model the discontinuity of displacement fields across the crack. The corresponding \(a_i\) degrees of freedom are called
Xh
in results files.the \(F^j_i(x)~(j=1,...,4)\) shape functions account for classical elastic analytical solutions around a crack tip:
(123)#\[(F^1,F^2,F^3,F^4) =\](124)#\[\left( \sqrt(r)~sin\left(\frac{\theta}{2} \right)~,~ \sqrt(r)~cos\left(\frac{\theta}{2} \right)~,~ \sqrt(r)~sin\left(\frac{\theta}{2} \right)~sin(\theta)~,~ \sqrt(r)~cos\left(\frac{\theta}{2} \right)~sin(\theta) \right)\]where \((r,\theta)\) are polar coordinates defined around the crack front as defined on the next figure:
the \(b_i^j (j=1;4)\) degrees of freedom associated to the \(F^j_i\) shape functions will be called
Xa
,Xb
,Xc
,Xd
in results files.
Note that the basic enrichment scheme described above is the so-called topological enrichment mode. A major problem associated with this mode, is that the influence of the refined shape functions used for nodes in the \(K\) set (\(\sqrt{r}\) shape functions), is decreasing when mesh size near the crack front is refined, which has a negative effect on the rate of convergence. If this is indeed a problem, geometrical enrichment can be used, where all nodes within a target user-defined distance of the crack front are automatically added to the \(K\) set, and are given full \(\sqrt{r}\) type of enrichment.
In the current Zébulon release (8.5), some restrictions on the use of this method still exist, that will be removed in the next versions:
only 3D linear elements are currently officially supported,
extensive capabilities do exist to use this scheme within the context of crack propagation (with automatic remeshing if needed), but those options are still under development and will not be addressed here.
Syntax#
The syntax is as follows:
[ ***xfem_gtheta
]
***xfem_crack_mode
[ **elset
ename ]
**discontinuity 3d_levelset
( no_option |
(
[ *psi_file
fpsi ]
[ *phi_file
fphi ]
[ *fit_to_vertice
eps ] )
)
[ **geometrical_radius
rad ]
[ *set_mpc
]
where:
keyword
***xfem_gtheta
is mandatory for connection with the***compute_G_by_gth
command (computation of 3D stress intensity factors by means of the \(G-\theta\) method ).optional command
**elset
ename may be used to specify the name of an elset containing candidate elements of the enrichment process. By default, all elements in the FE mesh are concerned, and are indeed enriched when cut by the crack or located within the geometrical radius definition.commands
*phi_file
,*psi_file
allow to specify the name of ASCII files defining the \(\phi,\psi\) levelsets on nodes of the FE mesh (see for the mesher command used to create those files). Default names for those files are “phi.dat
”, “psi.dat
”.the optional command
*fit_to_vertices
may be used to define the critical distance value eps, that controls if the crack does cut an element (ie. the element needs to be split), or simply pass through one of its corner nodes (vertice). Note that eps is a relative value, scaled against the size of the element edge cut by the discontinuity (default value is eps=0.05, ie. 5% of the length of the corresponding element edge).command
**geometrical_radius
specifies the size rad of the domain used for geometrical enrichment: int his case, all elements with nodes within a distance of less than rad of the crack front will be enriched with \(\sqrt{r}\) shape functions. This option enhance the rate of convergence of the xfem method (mesh size sensitivity), but should be used with caution since the size of the problem is strongly increased (12 additional dof by nodes concerned in 3D). Default mode is topological enrichment only (rad=0).when geometrical enrichment is activated, the optional
*set_mpc
may be used to automatically add linear relationship between the geometrically enriched zone and the rest of the mesh, in order to insure continuity of displacements, and improve the rate of convergence.
Examples#
Example 1
% Basic example : calculation with xfem enriched elements
****calcul
% activation of the Z8 output format mandatory
% for Zmaster handling of XFEM results
***global_parameter
Solver.OutputFormat Z8
Zmaster.OutputFormat Z8
...
% levelset definition in default phi.dat, psi.dat files
***xfem_crack_mode
**discontinuity 3d_levelset no_option
...
% special xfem output requests allowed in the Z8
% output mode
***output
**xfem_split_integ
**xfem_split_node
**xfem_split_contour
...
****return
Example 2
% use with the g-theta module
****calcul
...
% mandatory to link xfem with gtheta
***xfem_gtheta
***xfem_crack_mode
**discontinuity 3d_levelset
...
% gtheta commands for SIF calculation
% (note the **xfem keyword)
***compute_G_by_gth gtheta_a
**xfem
**behavior paris
...
****return