**cut_surface
#
Description#
This command performs a robust surface intersection operation. It requires a 3D volume mesh that better be refined (using Distene remeshing tools) closely to a given meshed surface.
Resulting output is made of a conform surface mesh (elset Nsurface
) decomposed in various elsets: parts of original elsets boundaries (Nskin
) and their newly cut parts (Nskinc
), created cut surface (Nlip
). Some output nset are also produced: Nlip
containing created cut surface nodes, Nskin
skin nodes, Nfront
front nodes (for surface containing a front liset i.e. for 3D crack insertion), Nseg_pb
containing original volume mesh edges nodes for edges cut an even times by the cut surface (smaller original volume elements are required in this area, as cut surface curve radius must be too small there).
This fast and robust algorithm is based on the given volume elements intersection, thus a remeshing process is required before FE computations (for better surface meshing, and volume filling), on the output Nsurface
.
Syntax#
**cut_surface
\(~\,\) [ *elset
elset-name-list ]
\(~\,\) [ *elset_to_cut
elset ]
\(~\,\) [ *nset_to_cut
nset ]
\(~\,\) [ *nset_not_to_cut
nset ]
\(~\,\) [ *surface
elset-name ]
\(~\,\) [ *tolerance
tol ]
\(~\,\) [ *front
liset-name-list ]
\(~\,\) [ *front_ini
nset ]
\(~\,\) [ *filter
tol ]
\(~\,\) [ *allow_quad
]
\(~\,\) [ *inside
]
*elset
list of elsets that should be cut by surface. If more than one is given, boundaries between the elsets will be kept during the process (to be able to keep various elsets in the output).
*surface
is the given surface elset mesh to intersect with.
*elset_to_cut
only this elset may be cut (default is to cut
ALL_ELEMENT
).*nset_to_cut
only edges contained in this nset may be cut.
*nset_not_to_cut
edges contained in this nset are not allowed to be cut.
*tolerance
if an edge intersection node is closer from an edge node than this distance value assume the edge node is on the cut surface. In most cases (in fact, in all currently tested cases), the zero default value of this parameter has proved to be robust.
*front
list of lisets representing the extremity of the cut surface that must be accurately inserted (i.e. for 3D crack insertion).
*front_ini
initial crack front, for newly cracked surface insertion (this nset represents the previous crack front), the newly surface will contain this previous front.
*filter
tolerance distance used to fuse pairs of same created surface elements (i.e. front 3D crack advance, to keep only one side of previously built lip). Default value is zero (no surface will be fused), if required a usual value is 1.e-5 times the mesh characteristic length.
*allow_quad
quad elements can be created during the algorithm. Default is not allowed as non-planar elements can be created an make a surface remeshing process fail.
*inside
crack surface advance may not pass through the boundary of the mesh (e.g. when 2 cracks are coalescing).
Example#
This example provides the intersection between a cube and an ellipse followed by remeshing operation of the intersection area.
****mesher
***mesh cut_with_ellipse.geof
**open cube.geof
**union
*add ellipse.geof
*tolerance 0.
**cut_surface
*elset elset
*surface crack
*front crack_front
*tolerance 0.
*filter 1.000000e-06
**complement_elset
*elset Nlip
*complement to_remove
**delete_elset
to_remove
**mesh_gems
*yams_only
*min_size 0.1
*max_size 0.2
****return