4.4.9. Burn Front Model
Some energetics are modeled in Aria using finite rate chemical mechanisms; however, this approach can be more expensive than is necessary to capture some thermal effects. An alternate approach is to define a burn front using a level set, which moves at a prescribed outward velocity and releases heat as it moves.
To enable this capability, the burn front model provides a mechanism for initializing the level set field based on an initiation or ignition temperature, or tied to chemeq deactivation based on the chemeq deactivation criteria (either temperature or temperature rate).
4.4.9.1. Model Setup
To set up a burn front model, you must make the following changes to the input file:
Define the burn model parameters (burn speed, heat release, initiation, ignition, and front width) in each energetic material. The full set of available models for each property is listed in the linked command reference sections.
Burn Speed = Constant Value = 0.01 # m/s Burn Heat Release = Constant Value = 1e6 # J/kg Burn Initiation = Temperature Tign = 750 # K Burn Front Width = Constant Width = 0.005 # m
Add a level set equation before your temperature equation.
Begin Equation System LevelSet [SOLVER SETTINGS] EQ Level_Set for Level_Set on all_EM Using Q1 with mass ADV EQ Extension_Speed for Extension_Speed on all_EM Using Q1 with xfer End Equation System LevelSet
Add an energy source term from the level set burn.
Source for energy on block_1 = Burn_Front
Set the initial condition for the level set field to a large positive number everywhere (needs to be larger than the specified level set width).
4.4.9.2. Model Assumptions and Limitations
This section contains various notes about how the model will behave under certain conditions, and implicit assumptions and limitations of the model.
By default each block can only have one ignition event. Once it is ignited it initializes the level set field and does not monitor for subsequent ignition. For multiple ignition events, you must specify a ‘min_ignition_spacing = X’ value on the Burn Initiation line. This will allow multiple ignition events as long as they are separated from an existing burn front by the specified distance. Pick a minimum ignition spacing (
) that is several times larger than your interface width (
), and that provides
, where
(
= thermal diffusivity and
= burn speed). This is so that the thermal front cannot move ahead of the burn front and trigger non-physical internal ignition points.
Burn Initiation = Temperature Tign = 750 min_ignition_spacing = 0.01
There are two valid forms for burn initiation, i.e., how the level set is initialized given ignition has occurred. The first, detailed above, is by an initiation temperature. The second is by using the initialization criteria for chemeq deactivation. Such a command line would look like
Burn Initiation = chemeq
In addition to burn initiation (where the burn starts), burn ignition (when the burn starts) can be specified. When using the chemeq criterion for burn initiation, the ignition is automatically done when chemeq is deactivated, and there is no option to override the ignition criteria. It is possible to use temperature burn initiation in conjunction w/ ignition based on chemeq by using the commands
Burn Initiation = Temperature Tign = 750 Burn Ignition = Chemeq
The level set is distanced using a global distance, so a tortuous material may result in a burn front that jumps from one location to a nearby location. Using the fast-marching level set may alleviate this issue, but is only compatible with tet meshes.
The total energy release from the burn model is independent of time step size and burn front speed, but the local temperature profile may not be. For example, if a heat flux is applied to a block in a burn front model and a small time step is used, the nodes on the heated surface will ignite and the front will propagate into the block. If a very large time step is used, the entire block may ignite at once releasing its heat uniformly. If time-resolving the local temperature increase due to the burn front is important to a particular application then a Courant limit can be applied to control the time step based on the burn front interface speed and local mesh size:
Begin Solution Control Description Use System Main Begin System Main ... Begin Transient TimeBlock Advance The_Region End End Begin Parameters For Transient TimeBlock ... Begin Parameters For Aria Region The_Region ... Time Step Variation = Adaptive Interface Courant Limit = 1.0 ... End End End