Software: FLAC: Pre-Release 6.0
Rezoning Logic
When FLAC is run in large strain mode, the grid may become distorted sufficiently that the simulation halts with a "bad geometry" message. The new rezoning logic maps the existing stresses, velocities and displacements onto a new, more regular, grid, so that the run can continue. Since interpolation is used in the re-mapping, some smearing and accuracy-loss is inevitable. To minimize these effects, the stresses are remapped for each sub-zone separately: thus, the overlap of a new sub-zone with each of the old sub-zones is performed in order to obtain a properly weighted estimate of the stress tensor in the new sub-zone. A progressively wider local search of possible overlaps is performed, in order to minimize search time, and ensure that it is a linear process (time proportional to the number of zones).
Rezoning illustrated: at left, a "bad geometry" zone is forming at the side of the grid; at right, the grid is rezoned to avoid the "bad geometry" error
Any FLAC model always uses some sort of grid generator devised by the user - something as simple as a series of commands or as complicated as a multi-line FISH function. The rezoning logic repeatedly invokes the user's grid generator to perform its functions. The following is a simplified explanation of the actions that occur when a REZONE command is issued (for a complete description, see the complete documentation).
- The model state is saved in a temporary area of memory
- A user-defined FISH function is called (from within the rezone logic) to create a new grid
- The stresses, velocities and displacements are mapped from the old grid to the new grid
- Advection of properties and state variables (e.g., plastic strains) is performed
- Absolute locations (in X-Y space) of grid-point/zone based histories are now stored; their indices in I-J space will be updated according to their absolute locations in the rezoning operation
- For dynamic simulation, the sub-zone masses are recalculated from updated density
Initial grid for a punch problem; the zones to be punched appear at the top center of the model.
Velocity vectors and contours of x-displacement are shown after 120000 steps. The arrows indicate nine of the levels of the punched zones at which rezoning occurred earlier in the model run (in all, the model was rezoned 81 times to reach the position shown).
The figures shown above - from an example problem described in the complete documentation - illustrate the effects of the rezoning logic. A punch problem is created where the model has a roller condition at lateral sides and is fixed in both directions along the bottom boundary. The punched area (five zones at the top center of the first figure) is subjected to a constant downward punching velocity. In this problem, we know that a bad geometry is going to occur after certain steps. The second figure indicates some of the moments (9 of 81) during model development where the rezoning logic was invoked to allow the run to continue past what would otherwise be a bad geometry error.
The rezone logic at present has some limitations that will be removed with further development over time: the logic excludes axisymmetry, interfaces, attach, multistepping, and FISH models. Note that only one material model can be used in a rezoning run at present.

