- 28 Oct 2024
- 27 Minutes to read
Grid guidelines
- Updated on 28 Oct 2024
- 27 Minutes to read
General guidance
In FLACS, the computational mesh comprises cubic or rectangular grid cells (or control volumes) defined by vertical and horizontal grid lines, i.e., a single-block rectilinear grid. The mesh spacing can be varied in any of the Cartesian directions. However, it is not currently possible to fit the mesh to curved or inclined walls or objects so these are modelled using stepped walls and/or sub-grid models.
Simulations calculated at finer grid resolutions or over larger domains take longer to run; see figure below. So, the resolution should be chosen to achieve a sufficiently accurate prediction within an acceptable time frame. It is recommended that simulations that are expected to run for days are first calculated for a coarser grid to check the setup and scenario definition (even if the configuration of the coarser grid does not meet the recommendations outlined in the grid recommendations tables below).
The figure below shows how the computational cost increases with grid resolution for gas explosion simulations from some experiment campaigns in our validation database. Lines are fitted to data from simulations of individual experiments (colours show experiments from the same campaign). All the plotted simulations were calculated using the same Gexcon HPC.
Grid domains
FLACS requires the simulation domain to extend beyond the region(s) of interest to avoid boundary effects impacting on results. For this reason, the grid generally comprises one or more high-resolution domains, referred to as core domains, and a so-called stretched domain, which extends from the core domain boundaries to the total domain boundary. Cells in the stretched domain may increase in size as the distance from the core domain edge increases and the total domain boundary is approached.
In addition to the core and stretched domains, some scenarios require an area of local grid refinement, where very high resolution is required to resolve a specific feature, and these areas are referred to as refinement regions.
For pool scenarios, the horizontal and vertical dimensions of the core domain are considered separately and an extra domain, the vertical pool region, is required between the bottom of the pool and the base of the core domain to ensure sufficient resolution for the evaporation calculations. Figures to illustrate the different parts of the grid needed for pool scenarios are provided in Grid domains for pool scenarios.
Large differences in size for neighbouring cells can cause problems for FLACS, so it is recommended that these are avoided and the Smooth tool in CASD can be helpful for creating a smooth transition between sizes, see the figure below for an example of this.
Geometry considerations
Positioning objects
The edges of large objects (objects that occupy more than 1.5 grid cells, e.g., walls and decks) should be aligned with the grid, and ideally positioned so that their edges fall on grid lines.
Grid planes for an existing grid can be adjusted using the Add, Position and Smooth options in the Grid information menu in CASD.
If an imported geometry is not aligned with the XY grid axes, the Auto-align geometry function can automatically align it. This can be accessed in the geometry window via Edit → Auto-align Geometry
Porosity is calculated for each grid cell and if the edges of large objects are not positioned on grid lines then undesirable artifacts may result, such as “leaking corners” or enlarged/shrunken vent areas. If a large surface does not sit on a grid plane, then secondary objects may create porosity profiles that lead to inappropriately increased turbulence at the deck surface; e.g., beams may be considered in the calculations to be on top of the deck instead of below it. It is not necessary for small objects to be aligned with the grid unless they are the dominant structures in a scenario, e.g., in a geometry with only a few objects.
For some complex scenarios, it may not be possible to align all large objects with the grid and still comply with the grid recommendations in the tables below. In such cases, it is recommended that large objects which are closest to the ignition are aligned, and other objects are aligned as far as is possible. The extent of any misalignment of large objects with the grid should be considered when interpreting simulation results.
Pipes
The inner diameter of angles and bends should be increased slightly when modelling pipes using a cylinder minus primitives. The solid wall around “minus primitive holes” must have a thickness of at least one full grid cell to ensure no leakage through the wall (two cells may be better when a cylinder is “subtracted” from another cylinder). A check to confirm that the predicted flow behaviour is as expected is recommended.
Multiple geometry objects
When the geometry is projected onto the grid, it is important to ensure that there are no partial openings where two geometry objects (e.g., pipes or vessels) are joined. This should be checked by calculating and verifying the porosities after creating the grid.
Grid sensitivity
Grid sensitivity studies are recommended for dispersion simulations (see below). For explosions, it may be beneficial to perform grid sensitivity simulations if the guidelines result in resolutions that are too fine for practical simulation (e.g., because of memory resources or because cells smaller than 1 cm are not recommended). Our validation for explosions is based on resolving the gas cloud with 15 cells, and simulations generally converge to the experimental results in this region (although they may diverge at finer resolutions for some scenarios). Numerically, the code does not fully converge with increasing resolution, primarily due to interactions between the structured cartesian grid, the geometry, and porosity. Our validation data are used to tune the models in FLACS so as to achieve our most accurate results when the clouds is resolved with 15 cells. This resolution allows simulations to be calculated within engineering timescales, while being sufficiently refined that small changes in the resolution generally do not result in large changes to the simulated data (for example, moving from 15 cells to 16 or 17 cells). Grid resolutions in the region of that which resolves the cloud with 15 cells therefore constitute a region of local convergence in most cases. In some cases, sensitivity could be looked at over the range of about 14 to 17 cells to determine if more extreme grid sensitivity is seen for a particular scenario.
Gas dispersion is affected by several parameters, including air and gas densities and velocities, and the size, position and complexity of any geometry in the scene. It is important that the grid resolution is sufficient to resolve all expected gradients. Sensitivity to the grid resolution varies between scenarios and so a sensitivity study is generally recommended. However, this is not always practical and several validation studies have therefore been carried out to determine the recommendations in the table.
Grid recommendations
The recommendations in the tables below describe the optimum configuration of the grid according to the scenario characteristics. These are based on validation against experiment results and analysis of the calculations in FLACS. For many scenarios, it is not possible to meet all the recommendations, for example, orientating the grid so that all leak directions are aligned with grid axes. In such cases, the recommendations should be followed as closely as possible, and a grid sensitivity study may be helpful. Multiple recommendations in the table apply to any individual scenario and the first column can be used to determine whether each specific recommendation is applicable. Some recommendations are based on information that may not be readily available, such as the initial high pressure region for a blast. The notes below the table provide references to sections of this manual where methods for estimating these are provided. Once configured, some aspects of the grid configuration can be checked using the grid checking option in CASD.
Different grids are appropriate for dispersion and explosion simulations, so results from a dispersion simulation should be dumped and a new grid created before being used to simulate an explosion.
General
When this applies | Recommendation | Notes |
ALWAYS | Stretch factor++ ≤ 1.2. | Stretch factors++ beyond 1.2 have not been widely tested and are not generally required. However, it may be necessary to use a slightly higher stretch factor++ for a dispersion scenario which otherwise requires an impractical number of grid cells, or where the grid has been adjusted to fit a wall. It is not anticipated that results will be adversely affected provided the factor remains below 1.4, but this has not been widely tested. |
ALWAYS | Grid does not extend unnecessarily below an impermeable ground surface (and ground covers whole of the horizontal domain). | |
ALWAYS | Cell size at all ROI(s)+ ≤ 5 m. | This ensures that all values are meaningful (further recommendations below will result in a smaller value for most scenarios). |
ALWAYS | At least 3 cells between the total domain boundary and any ROI+. | This makes it less likely that values are impacted by any unphysical boundary effects. |
ALWAYS | Monitor points should not be in the same grid cell as a solid wall (unless the wall is thicker than a single grid cell or forms the simulation boundary, e.g., the ground). | The wall may snap to a cell wall that means the MP is on the other side of it from what was intended. |
ALWAYS | Monitor points should be in unblocked cells. | Ideally, monitor points should be in porosity=1 cells. If this is not possible, then we should try to maximise the porosity of the MP cell. If neighbouring cells have higher porosity, then we should move the MP so that it is just inside a neighbouring cell. If neighbouring cells also have low porosity, then a finer grid resolution may be needed to capture any space around the MP. |
Geometry present | Large objects should be aligned with the grid and positioned so that edges fall on grid planes. | Applies to objects that occupy > 1.5 grid cells, e.g., walls and decks. |
Multiple geometry objects | No unintended partial openings between objects (i.e., no leakage) | |
Pipes | Solid walls around ‘minus primitive holes’ must be at least 1 cell thick. | This ensures no leakage through the wall (2 cells may be better when a cylinder is ‘subtracted’ from another cylinder) |
Explosion
When this applies | Recommendation | Notes |
Explosion, blast and fire | Cell size in all domains ≥ 1 cm. | Cell sizes smaller than this have not been widely tested are there is a possibility that the sub-grid models may fail, in particular the sub-grid model for premixed combustion (explosions) may severely overpredict burning velocities for very fine resolutions. |
Explosion | Aspect ratio** for cells in core domain* ≤ 2. | The longest cell side should be no more than twice the length of the shortest cell side. |
Explosion | Core domain* should cover:
| Allow for 5% expansion of the gas cloud in every direction in which expansion is possible. |
Explosion | Size for cells covering the expanded gas/dust cloud should be ≤ D/15 in each dimension, where D is the extent of the expanded gas/dust cloud in that dimension. | When multiple clouds are included in the same core domain, this recommendation should be met for every cloud. |
Explosion and blast | Distance between the core domain* boundary and total domain boundary ≥ 3 × the core domain* extent in every direction. | This reduces the likelihood of boundary effects impacting on calculations in the core domain* and is particularly important for scenarios with PLANE_WAVE boundary conditions. |
Explosion and blast with far-field ROI(s)+ | Core domain* cell size should be maintained from the core domain* to the ROI(s)+. | Pressures are calculated at lower resolution over stretched parts of the grid so this recommendation is to avoid peaks being dampened. |
Gas explosion when an external explosion is likely | Minimum distance from vents+++ to core domain* boundary:
| For a gas explosion, an initial coarse-resolution simulation may help to determine whether an external explosion is likely. The possibility of external explosion should always be considered when the fuel mix includes hydrogen. |
Gas explosion with vents+++ | Minimum distance from vents+++ to core domain* boundary:
| |
Explosion with vents+++ (including vents covered by panels) | A minimum of 3 cells is recommended across every vent (in every direction). | When this is impractical, then it is important that vents are covered with at least one cell in every direction that has porosity=1. |
Explosion with vents+++ (including vents covered by panels) | The edges of all vents should be on grid planes. | This is particularly important if only one cell is used to resolve a vent ( we recommend 3 cells whenever possible). |
Any scenario with an ignition/explosive location | Ignition should not be on a grid line and should be in an unblocked cell. | See note above about recommendation for MPs in unblocked cells. |
Fire
When this applies | Recommendation | Notes |
Explosion, blast and fire | Cell size in all domains ≥ 1 cm. | Cell sizes smaller than this have not been widely tested are there is a possibility that the sub-grid models may fail, in particular the sub-grid model for premixed combustion (explosions) may severely overpredict burning velocities for very fine resolutions. |
Dispersion and fire (including pool fire) | The leak direction should be aligned with a grid axis. | The OPEN_SIDES setting ensures that this is the case, however it may not be possible for scenarios with multiple leaks. In these cases, direction cosines can be used to specify the direction for leaks that cannot be aligned with the grid. |
Dispersion and fire | Leak should not be positioned on a grid line in the leak direction. | For example, a leak that flows in Z direction should not be positioned on a Z grid line. In the simulation, the leak is assigned to a cell and if it is positioned exactly on a boundary then it may be assigned to the incorrect cell and the leak may flow out of the wrong cell. |
Dispersion and fire with area leak(s) | Leak edges should be on grid planes. | When this is not possible, e.g., for an elliptical leak, the leak area should be contained within a whole number of grid cells without necessarily filling every cell (FLACS-CFD will correct for this). |
Dispersion and fire with area leak(s) | The centre of the core domain* for each leak should be located at the centre of the leak (in the plane of the leak). | Multiple core domains may be required for scenarios with multiple leaks. |
Dispersion and fire with area leak(s) | In the plane of the leak, the core domain* should extend beyond each leak edge by at least one cell. In the leak direction, the extent of the core domain* should equal the extent of the core domain* in the plane of the leak. | All cells in the core domain should be the same size and shape, but this shape need not be cubic since cells may be elongated in the leak direction by up to an aspect ratio of 5. |
Dispersion and fire with area leak(s) | Every leak should be resolved by at least 3 cells in the plane of the leak. | |
Dispersion and fire with area leak(s) | Cells in a core domain* that is centered on a leak should have sides <= 4 m in the plane of the leak. | The recommended aspect ratio** means that this also implies a maximum cell size in the leak direction in the core domain*. |
Dispersion and fire with point leak(s) | The cell containing the leak, plus one cell either side of this (in the leak plane), plus two cells in front of it (in the leak direction) should all be refined, i.e., cells in this area should all be the same size and shape (so not stretched). | All refined cells should be the same size and shape, but this shape need not be cubic since cells may be elongated in the leak direction by up to an aspect ratio of 5. |
Dispersion and fire with point leak(s) | Refined cells around the leak should have sides of length (1.25 × expanded leak area)0.5 in the plane of the leak. | The recommended aspect ratio** means that this also implies a maximum cell size in the leak direction in the refinement region. This refinement is not necessary when only results in the far-field are of interest. |
Dispersion and fire with point leak(s) | Point leaks should not be in the same grid cell as a solid wall. | See note above for the same recommendation for MPs. |
Fire and dispersion with leak(s) | Aspect ratio** for cells in core domain(s) and refinement region(s) around area or point leak(s) ≤ 5. | Cells may be elongated in the direction of the leak/flame propagation. |
Dispersion and fire with time-varying leak(s) | Recommendations here should be met throughout the evolution of the leak. | The time-area profile for time-varying leaks should be checked. |
Dispersion and fire with time-varying leak(s) | Leak area(s) should be covered by an odd number of cells in each direction in the plane of the leak. | This prevents leaks them from shrinking to nothing. |
Fire with near-field ROI(s) (including pool fire)+ and impingement | Any surface on which a flame from a jet or pool fire impinges should be aligned with the grid. | |
Any scenario with an ignition/explosive location | Ignition should not be on a grid line and should be in an unblocked cell. | See note above about recommendation for MPs in unblocked cells. |
Any scenario with an ignition | Ignition should not be in the same grid cell as a solid wall. | See note above about about the same recommendation for MPs. |
Pool fire
When this applies | Recommendation | Notes |
Pool | Vertical pool region*** should extend from pool-substrate interface to the height of the bund plus 6 cells. | The height of the pool surface should be used if there is no bund. |
Pool | Size of cells in the vertical pool region*** ≤ pool diameter /25. | For a spreading pool, the pool diameter is the maximum pool diameter. |
Pool | Horizontal core domain* should cover the pool surface area. | For a spreading pool, use the maximum pool surface area. |
Pool | Number of cells to resolve pool diameter ≥ 15. | |
Pool | Cell size in the horizontal core domain ≤ 2 m. | |
Pool | Total vertical domain extends from the core domain boundary to a distance of 10 × the core domain extent for fire scenarios. For evaporation-dispersion scenarios, substitute ‘vertical refinement region’ for ‘core domain’ | Note, no vertical core domain is generally required for pool scenarios with no fire, provided that the recommendation for the vertical pool region is met. |
Pool fire | Distance from pool centre to total domain boundary in horizontal plane ≥ 5 × pool diameter. | |
Pool fire | Vertical core domain* extends from top of vertical pool region*** to ≥ 1.5 × flame height. | Note, no vertical core domain is generally required for pool scenarios with no fire, provided that the recommendation for the vertical pool region is met. |
Dispersion
When this applies | Recommendation | Notes |
Dispersion and fire (including pool fire) | The leak direction should be aligned with a grid axis. | The OPEN_SIDES setting ensures that this is the case, however it may not be possible for scenarios with multiple leaks. In these cases, direction cosines can be used to specify the direction for leaks that cannot be aligned with the grid. |
Dispersion and fire | Leak should not be positioned on a grid line in the leak direction. | For example, a leak that flows in Z direction should not be positioned on a Z grid line. In the simulation, the leak is assigned to a cell and if it is positioned exactly on a boundary then it may be assigned to the incorrect cell and the leak may flow out of the wrong cell. |
Dispersion and fire with area leak(s) | Leak edges should be on grid planes. | When this is not possible, e.g., for an elliptical leak, the leak area should be contained within a whole number of grid cells without necessarily filling every cell (FLACS-CFD will correct for this). |
Dispersion and fire with area leak(s) | The centre of the core domain* for each leak should be located at the centre of the leak (in the plane of the leak). | Multiple core domains may be required for scenarios with multiple leaks. |
Dispersion and fire with area leak(s) | In the plane of the leak, the core domain* should extend beyond each leak edge by at least one cell. In the leak direction, the extent of the core domain* should equal the extent of the core domain* in the plane of the leak. | All cells in the core domain should be the same size and shape, but this shape need not be cubic since cells may be elongated in the leak direction by up to an aspect ratio of 5. |
Dispersion and fire with area leak(s) | Every leak should be resolved by at least 3 cells in the plane of the leak. | |
Dispersion and fire with area leak(s) | Cells in a core domain* that is centered on a leak should have sides <= 4 m in the plane of the leak. | The recommended aspect ratio** means that this also implies a maximum cell size in the leak direction in the core domain*. |
Dispersion and fire with point leak(s) | The cell containing the leak, plus one cell either side of this (in the leak plane), plus two cells in front of it (in the leak direction) should all be refined, i.e., cells in this area should all be the same size and shape (so not stretched). | All refined cells should be the same size and shape, but this shape need not be cubic since cells may be elongated in the leak direction by up to an aspect ratio of 5. |
Dispersion and fire with point leak(s) | Refined cells around the leak should have sides of length (1.25 × expanded leak area)0.5 in the plane of the leak. | The recommended aspect ratio** means that this also implies a maximum cell size in the leak direction in the refinement region. This refinement is not necessary when only results in the far-field are of interest. |
Dispersion and fire with point leak(s) | Point leaks should not be in the same grid cell as a solid wall. | See note above for the same recommendation for MPs. |
Fire and dispersion with leak(s) | Aspect ratio** for cells in core domain(s) and refinement region(s) around area or point leak(s) ≤ 5. | Cells may be elongated in the direction of the leak/flame propagation. |
Dispersion and fire with time-varying leak(s) | Recommendations here should be met throughout the evolution of the leak. | The time-area profile for time-varying leaks should be checked. |
Dispersion and fire with time-varying leak(s) | Leak area(s) should be covered by an odd number of cells in each direction in the plane of the leak. | This prevents leaks them from shrinking to nothing. |
Pool dispersion
When this applies | Recommendation | Notes |
Pool | Vertical pool region*** should extend from pool-substrate interface to the height of the bund plus 6 cells. | The height of the pool surface should be used if there is no bund. |
Pool | Size of cells in the vertical pool region*** ≤ pool diameter /25. | For a spreading pool, the pool diameter is the maximum pool diameter. |
Pool | Horizontal core domain* should cover the pool surface area. | For a spreading pool, use the maximum pool surface area. |
Pool | Number of cells to resolve pool diameter ≥ 15. | |
Pool | Cell size in the horizontal core domain ≤ 2 m. | |
Pool | Total vertical domain extends from the core domain boundary to a distance of 10 × the core domain extent for fire scenarios. For evaporation-dispersion scenarios, substitute ‘vertical refinement region’ for ‘core domain’ | Note, no vertical core domain is generally required for pool scenarios with no fire, provided that the recommendation for the vertical pool region is met. |
Blast
When this applies | Recommendation | Notes |
Explosion, blast and fire | Cell size in all domains ≥ 1 cm. | Cell sizes smaller than this have not been widely tested are there is a possibility that the sub-grid models may fail, in particular the sub-grid model for premixed combustion (explosions) may severely overpredict burning velocities for very fine resolutions. |
Explosion and blast | Distance between the core domain* boundary and total domain boundary ≥ 3 × the core domain* extent in every direction. | This reduces the likelihood of boundary effects impacting on calculations in the core domain* and is particularly important for scenarios with PLANE_WAVE boundary conditions. |
Explosion and blast with far-field ROI(s)+ | Core domain* cell size should be maintained from the core domain* to the ROI(s)+. | Pressures are calculated at lower resolution over stretched parts of the grid so this recommendation is to avoid peaks being dampened. |
Blast | Aspect ratio** for cell sides in the horizontal plane in the core domain* = 1. | If Z is vertical, then the lengths of the X and Y sides of cells in the core domain should be equal. Cells may be elongated in the Z-direction by up to a factor of 2 if the wave propagation in this direction is not of interest (otherwise cells should have an equal length in X, Y and Z). |
Blast | Monitor points should not be cells with porosity = 0.5 | FLACS-Blast treats porosities as binary, so porosity=0.5 cells are ambiguous. |
Blast | The core domain* must include: All ROI(s)+ Everywhere where shock wave peak pressure > 1 barg | If some ROI(s)+ are very far from the blast and this therefore results in am impractical number of grid cells, then the recommendation below for ‘Explosion and blast with far-field ROI(s)+’ can be followed instead. |
Blast | The initial high-pressure region should be resolved by at least 5 cells in every direction. | |
Any scenario with an ignition/explosive location | Ignition should not be on a grid line and should be in an unblocked cell. | See note above about recommendation for MPs in unblocked cells. |
DustEx
When this applies | Recommendation | Notes |
Dust explosion with vents+++ | Minimum distance from vents+++ to core domain* boundary: 3 × vessel length in vent-opening direction 7 cells in all other directions | Recommended for all dust explosions to ensure that any external explosion is sufficiently resolved. |
Any scenario with an ignition/explosive location | Ignition should not be on a grid line and should be in an unblocked cell. | See note above about recommendation for MPs in unblocked cells. |
Any scenario with an ignition | Ignition should not be in the same grid cell as a solid wall. | See note above about about the same recommendation for MPs. |
Notes
+ ROI: region of interest. This is any monitoring point or region where values calculated in FLACS are of interest.
++ The stretch factor is the length of a cell in one direction divided by the length of the neighbouring cell in the same direction.
+++ Vents are openings that may or may not be covered by panels (so panels are treated as vents).
* The core domain(s) are region(s) of the grid where higher resolution is required (e.g., close to a leak, where there is a flame, the gas cloud for an explosion, etc.). Note that some further refinement is required around point leaks and immediately above an evaporating pool surface. See Grid domains in the manual for more information on naming parts of the grid.
** The aspect ratio is the ratio of the length of one side of the grid cell to the length of another side.
*** The vertical pool region is a region of extra grid refinement immediately above the pool surface for pool scenarios (dispersion and fire). See Grid domains for pool scenarios in the manual for the different grid regions for pool scenarios.
Technical reference
See the “Jet flame shape” section in the Technical reference chapter of the FLACS User’s Manual for a method to estimate the jet flame shape plus lift-off (implemented in the automatic grid refinement in CASD). This ideal flame shape does not account for congestion or impingement, so it is recommended to use an initial coarse-resolution simulation to estimate the flame dimensions for congested scenarios.
See the “Maximum pool area and flame shape for pool scenarios” section in the Technical reference chapter of the FLACS User’s Manual for a method to estimate pool flame shape and the maximum area for a spreading pool. This ideal flame shape does not account for congestion or impingement, so it is recommended to use an initial coarse-resolution simulation to estimate the flame dimensions for congested scenarios.
The jet utility can be used to estimate the expanded leak area (implemented in the leak wizard in CASD and described in the Release source modelling section of the Utility programs chapter) or, alternatively, follow the section ‘Steps when the jet utility program is not employed’ in the manual.
The Technical Reference chapter of the FLACS User’s Manual provides a method to estimate the high pressure region where shock waves greater than 1 barg are experienced following a blast. This estimate does not account for reflections from surfaces (other than the ground), which may increase the blast volume. It may be necessary to extend the core domain beyond this minimum extent for these cases. Alternatively, an initial coarse-resolution simulation can be used to estimate the distance travelled by the wave.
The Technical Reference chapter provides a method to estimate the initial high-pressure region.
Attention
Pool and dispersion scenarios with non-zero windspeed require a secondary core domain with the same size and resolution as the primary core domain described in the table. The secondary core domain should be located with its centre offset from the primary core domain centre by a distance equal to the pool radius in the direction of the wind. For an area leak, the offset distance should be the distance from the leak centre to the leak edge in the direction of the wind. This is not necessary for jet fire scenarios since the estimated flame shape used to set the core domain takes into account the wind speed.
Modelled-entrainment leaks
Some of the recommendations in the table should be adjusted slightly for the particular case of modelled-entrainment leaks.