4.4.8. Element Death
Element death is a dynamic process in which existing elements are identified by their state as being active (included in the simulation) or inactive/dead (excluded from the simulation). This capability is implemented in two different flavors, one where elements are explicitly removed (Standard Element Death) and another (CDFEM) in which elements are subdivided in a manner consistent with the element death criterion. Tradeoffs between the two include:
CDFEM has been shown to possess a notion of solution convergence, whereas standard element death is only qualitatively correct.
Standard element death can be applied to bulk volume discretizations of any element topology, whereas CDFEM element death is limited to 2D triangular and 3D tetrahedral discretizations.
Generally speaking, CDFEM is more computationally expensive than standard element death but provides a higher resolution in front tracking.
With a few exceptions both element death implementations utilize essentially the same command directives.
The element death capability is composed of two parts, definition of criterion and
definition of its scope. Each death criterion definition must be named
uniquely (DeathName) and its scope will be the specific set of mesh entities,
blocks of the input mesh to which the criterion is
applied. See the command reference for
details on all available commands.
Attention
While an element death definition can include many mesh entities, these entities must correspond to a single element topology, i.e. Hex8, Tet4.
The element death process will result in a new discretization that may
include surfaces defined by dead elements. The new discretization will be written
to a results file named the same as the original results file but appended
with a suffix, e.g. for an original file t.e the new discretization would
be t.e-s0002. For simulations in which elements are continually being
killed this results in a numbered sequence of output files.
Note
Visualization of element death differs between standard element death and CDFEM element death but is somewhat straightforward as most applications will automatically load the collection of output files to produce the appropriate model animation.
4.4.8.1. Standard Element Death
In standard element death, characterization of the death state is monitored
using an element variable (DEATH_STATUS) which denotes whether
an element is currently active (DEATH_STATUS) or inactive (
DEATH_STATUS).
Visualization of a model with the “dead” elements removed is made possible
by use of the
DEATH_STATUS output variable. Since DEATH_STATUS denotes
dead elements,
the
DEATH_STATUS variable can then be used in conjunction with any
visualization thresholding utility to animate the element death process.
During a simulation in which standard element death is defined, one can monitor
the extent of element death through two values output to the log file,
KILLED_ELEMENTS and TOTAL_DEAD_ELEMENTS. KILLED_ELEMENTS reports
the number of elements removed from the simulation after completion of
the current time step while TOTAL_DEAD_ELEMENTS is the cumulative
number of elements deleted. Both KILLED_ELEMENTS and TOTAL_DEAD_ELEMENTS are also available
for output to the results/heartbeat output as
global variables under the same name (e.g. global variables = killed_elements).
One can also monitor the extent of element death by observing the number of
unknowns in the nonlinear solution step portion of the log file. More specifically,
the content of the line beginning with * Matrix:Solver: which contains
the number of unknowns on processor rank 0 but and the following line beginning
with * Mesh will contain the number of elements on processor rank 0.
4.4.8.2. CDFEM Element Death
In CDFEM, characterization of the death state is monitored directly
by the contents of two element block entities: the original element block
and an internally generated “death” part. The “death” part has the
base name of original element block appended with _DEAD
(e.g. the “death part” for BLOCK_3 would be BLOCK_3_DEAD).
When element death occurs, elements in the original element block are
removed and transitioned to the “death” part. Since the “death” part is
not part of the original mesh, the user must define this part within
the Finite Element Model
command block in the same way as the original element block was defined e.g.
# Scope: Sierra
Begin Finite Element Model The_Mesh
Database Name = mesh.g
Decomposition Method = rcb
use material foo for block_1
use material foo for block_1_dead
...
End
During a simulation in which CDFEM element death is active, one can roughly monitor the extent of element death by observing the number of unknowns in the nonlinear solution step portion of the log file.
Note
As state above, the content of the line beginning with * Matrix:Solver:
contains the number of unknowns on processor 0, but changes on processors
other than rank 0 are not recorded in the log file.
Visualization of a model with CDFEM element death is straightforward since a clear distinction is made between the element blocks in the original mesh and the “death” part. Hence one can proceed in the same way as the original mesh.
4.4.8.3. General Death Syntax
Death criteria can be expressed in terms of any internal field.
As an example, a standard element death command block named criteria
DEATH_TEMP8 based upon the average nodal temperature solution on BLOCK_3
exceeding temperature of 322 K might be defined as:
# Scope: Sierra > Procedure > Aria Region
Begin Element Death death_temp8
add volume block_3
Criterion is Avg nodal value of solution->Temperature > 322.0
End
The equivalent syntax for CDFEM death differs only in the command block
specification, Begin CDFEM death death_temp8.
# Scope: Sierra > Procedure > Aria Region
Begin CDFEM Death death_temp8
add volume block_3
Criterion is Avg nodal value of solution->Temperature > 322.0
End
As elements are deactivated, elements that were previously internal
can become exposed as external surfaces. For consistent applications of boundary
conditions, the interface between the active and inactive elements is captured
in a surface part named surface_<DEATHNAME> e.g. surface_death_temp8.
As an example, with standard element death a flux boundary condition applied
to the surface of a block with element death occurring can be achieved with
# Scope: Sierra > Procedure > Aria Region
Begin Heat Flux Boundary Condition X-face
Add Surface surface_4
Add Surface surface_death_temp8
Flux = 100.
End
where the addition of Add Surface surface_death_temp8
ensures that the boundary condition surface is continually updated.
Note
Element death impacts the existence of the element in all physics defined in the Aria Region. In problems defined with segregated physics, then, the element death behavior must be defined outside the scope of any Equation System.
In most cases the element death criteria will be evaluated based upon values computed within Aria. Here the death criteria are evaluated at the end of a solution step. With standard element death, it is also possible to evaluate the criteria based upon externally supplied “transfer” variables. In this case one can force the death criteria to be evaluated at the beginning of time step using the Transfer Element Death command line.