Automatic Remeshing in FLAC2D

Note

Automatic remeshing is a BETA functionality.[1]

When running a FLAC2D analysis in the large-strain mode, zones may deform significantly, which may lead to bad or “illegal” geometry errors. Such errors indicate that numerical calculations cannot be done in such zones, and analysis is aborted. The remeshing functionality is designed to address these issues and allow users to continue numerical simulations. The remeshing logic is automatically invoked if any of the following occurs:

  • zone area becomes zero or negative (e.g., inverted quadrilateral zone),

  • the area of any of internal subzones becomes zero or negative,

  • all internal zone overlays are deleted,

  • the ratio of the smallest internal subzone area to zone area is less than zone tolerance set by zone geometry tolerance command (tolerance = 0 by the default),

  • zone 2D shape quality is less than the minimum value set by zone remesh shape-quality command (min value = 0.025 by the default),

  • zones overlapping or interpenetration between different remeshing regions is detected.

All these criteria are checked every 10 steps (by the default) or at the intervals set by the user with zone geometry update-interval command.

FLAC2D remeshing logic is based on several main steps.

  1. Before cycling the model, the user must define closed boundaries (remeshing domains) within which remeshing will take place, if needed. Typically, the whole model is remeshed, and in such a case, its exterior boundaries can be set as the remeshing boundaries. In some cases, however, it is possible to define remeshing of smaller regions (e.g., as described in Defining Remeshing Domains/Boundaries below).

  2. All necessary gridpoint, zone, and face parameters are preserved in temporary storage.

  3. The remeshing logic automatically recreates a mesh within the specified remeshing boundaries and replaces old bad meshes with new good meshes. An unstructured mesh type is always used when creating a new mesh.

  4. The remeshing logic copies and/or interpolates all necessary data from the temporary storage to all gridpoints, zones, and faces within newly created meshes.

  5. Model cycling continues.

Steps to set up remeshing

The first three items below are required to enable automatic remeshing.

  1. Define remeshing domains / boundaries.

  2. Configure model for remeshing (this can be done at the beginning, before cycling, or before expecting bad geometry):

    model remeshing on

  3. Specify which Slot contains the remeshing boundaries (for example, "MyRemeshingSlot"):

    zone remesh boundary by-slot "MyRemeshingSlot"

  4. Optional: Specify other zone remesh options.

  5. Optional: Specify geometry check / update interval if different from the default (every 10 steps). Depending on the model and the severity of deformations, it may be necessary to set more frequent geometry checks (sometimes as frequent as every 3 - 5 steps). Note that more frequent geometry checks may increase model runtime.

    zone geometry update-interval ...

  6. Optional: In rare cases involving large and fast-developing deformations, it may be necessary to increase the mechanical safety factor to allow FLAC2D to make smaller increments in system damping when solving EOM. This will allow for more incremental geometry changes and can lead to more accurate and stable results. See zone mechanical safety-factor command.

After this, start or continue model cycling.

Considerations

Defining Remeshing Domains/Boundaries

The first step in using the remeshing functionality is to define a domain (or multiple domains) in which remeshing will take place. The domains are defined by closed boundaries represented by named/grouped faces. All such groups must be assigned to a unique SLOT, as the remeshing logic will use every group from this slot to identify the boundaries.

There are two main ways of creating face groups while assigning them to a remeshing slot:

  1. Define groups directly using command zone face group and Range logic, for example:

    zone face group "MyGroup" slot "Remesh" range ...

  2. If model geometry is created via Sketch, users may directly create remeshing boundaries by assigning groups and slots to edges.

The remeshing groups and the Slot may have any names (e.g., “MyGroup”, “Remesh”). Only the slot name is used to identify the remeshing domains / boundaries as discussed earlier. Several possible cases of defining remeshing boundaries are shown next.

Remeshing the whole model using the exterior boundaries.

As the interior model boundaries are located within the remeshing domain but not assigned to the remeshing Slot, they will be deleted during the remeshing step.

../../../../../_images/beforeremeshingA.png

Figure 1: Model boundaries before remeshing.

../../../../../_images/afterremeshingA.png

Figure 2: Model boundaries after remeshing.

Remeshing the whole model and preserving internal boundaries.

In many cases it is important to preserve internal boundaries during remeshing. Such boundaries may separate different materials; thus, it would be important to preserve separate domains (e.g., soil / rock layers below).

../../../../../_images/beforeremeshingB.png

Figure 3: Two-layer model boundaries before remeshing.

../../../../../_images/afterremeshingB.png

Figure 4: Two-layer model boundaries after remeshing.

Remeshing a part of the model and preserving the boundary between domains.

IMPORTANT: it is only advised to make remeshing domain smaller than the whole model when deformations (strains, stresses) at the parts of the remeshing boundaries located within the model (e.g., within the red ellipses below) are insignificant or very small. Certain constitutive models may produce inaccurate results and even artificial failure at such boundaries due to small discrepancies between interpolated and not interpolated zone / gridpoint data when deformations occur at such boundaries.

../../../../../_images/beforeremeshingC.png

Figure 5: Two-layer model before remeshing with remeshing boundaries defined on a portion of the model.

../../../../../_images/afterremeshingC.png

Figure 6: Two-layer model after remeshing with remeshing boundaries defined on a portion of the model. Model parts outside of the remeshing domain are not altered.

Gridpoint Fixity And Face Apply Conditions

All gridpoints with set fixity or initial conditions as well as the conditions (e.g., set with zone gridpoint fix, zone gridpoint initialize) are preserved during remeshing.

Zone faces with apply conditions (e.g., set with zone face apply) which are located on the remeshing boundaries are preserved.

Zone faces with groups/slots other than the remeshing slot retain all the groups/slots, if they are located on the remeshing boundaries.

Note that parts of the remeshing boundaries containing any fixity or apply conditions are not altered. If such boundaries significantly deform, it may lead to creation of bad meshes at the boundaries and potential remeshing failure.

Smoothing/Preserving Model Boundaries

The shape and discretization of the remeshing boundaries located on the exterior of the model are preserved as much as possible. This is needed to avoid smoothing any existing model features and to preserve fixity and apply conditions typically configured on the exterior model boundaries. If free faces (no BCs) on the exterior remeshing boundaries are significantly stretched, they may be re-discretized/split into smaller segments to avoid creation of very large zones (compared to the average model zone size). However, smaller zones/faces on the exterior boundaries are not modified to create larger zones.

Remeshing boundaries located within the domain are smoothed and re-discretized to provide better meshing results. Parts of the internal remeshing boundaries containing gridpoints and faces with fixity and/or apply conditions are preserved.

If gridpoints on the exterior model boundaries significantly pinch out due to large deformations and create very thin “spikes”, such “spikes” may be truncated. See more details in zone remesh boundary pinchout-angle. This option must be used carefully, as artificial removal of a part of the model may lead to instability. If this option is not desired, set the pinch-out angle to 0.

Choosing Appropriate Geometry Update Interval

The default geometry update interval under large-strain is every 10 steps. During these updates, remeshing logic checks if the remeshing logic needs to be triggered. Thus, it may seem reasonable to have geometry checks more frequently. This, however, is not recommended for a few reasons: (1) the analysis will be slower, (2) frequent interpolations may introduce inaccuracies in the solution and even alter model behavior, and (3) after each remeshing step it is recommended for the model to cycle at least for a few steps to equilibrate stresses, strains, etc. On the other hand, rather infrequent geometry checks may not catch in time the occurrence of bad zones in the model.

Recommended geometry check interval is every 3 – 10 steps but it depends on each model.

Current Limitations

Current limitations of the remeshing functionality include:

  • No support for Structural Elements

  • No support for interfaces or zone joints

  • Attach conditions are not allowed

  • Axisymmetry is not allowed

  • No interpolation between FISH extra variables (however, new gridpoints and zones may receive a direct copy of such parameters from the nearest gridpoints / zones in the old mesh)

  • Remeshing boundaries with fixity and apply conditions are not adjusted / reconfigured even if significantly deformed

  • Depending on the geometry, the meshing logic may produce valid but non-deterministic unstructured meshes. This means that modeling results may not be fully deterministic (also depends on constitutive models used and how sensitive they are to zone shapes/sizes). However, overall modeling results are always consistent.

Many of these limitations will be resolved with future updates and releases.

Remeshing Examples

Endnote