Finite Volume Method Airbag Modeling

In Radioss the standard method for airbag calculation is the Finite Volume Method (FVM).

The FVM models gas flow inside the airbag, including the interaction with internal airbag components which could include internal walls, baffles, and so on. The airbag cards, /MONVOL/FVMBAG1 and /MONVOL/FVMBAG2 are used to set up the FVM airbag. Uniform pressure airbags can be used for debugging purposes to check unfolding, contacts, and global consistency of gas dynamic parameters. /MONVOL/AIRBAG1 can be used to activate a uniform pressure airbag for debugging.

Generic /FVMBAG1 card:
/MONVOL/FVMBAG1/46
FVMBAG1
#surf_IDex                         Hconv
 666000001                             0
#            AscaleT             AscaleP             AscaleS             AscaleA             AscaleD
                   0                   0                   0                   0                   0
#   mat_ID                                              Pext                T0       Iequi      Ittf
 666400002                                              1E-4                 296         1         3
#     Njet
         1
#inject_ID   sens_IDsurf_IDinj
 666400002 666000500 666200211
#fct_IDvel                     Fscalevel
 666000200                             1
#    Nvent  Nporsurf
         1         2
# surf_IDv     Iform               Avent               Bvent                              vent_title
 666000015         1                   0                   0                                        
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                1E30                   0                   0                   0
#  fct_IDt   fct_IDP   fct_IDA                       Fscalet             FscaleP             FscaleA
         0         0         0                             1                   1                   1
# fct_IDt'  fct_IDP'  fct_IDA'                      Fscalet'            FscaleP'            FscaleA'
         0         0         0                             1                   1                   1
#surf_IDps   Iformps Iblockage                                                         surface_title
 666000004         2         0                                                                      
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                   0                   0                   0                   0
#  fct_IDv                       Fscalev
 666000004                             1
#surf_IDps   Iformps Iblockage                                                         surface_title
 666000003         2         0                                                                      
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                   0                   0                   0                   0
#  fct_IDv                       Fscalev
 666000003                             1
# frame_ID     kmesh             Tswitch
         0         4                  20
#                 L1                  L2                  L3
                   0                   0                   0
#      Nb1       Nb2       Nb3 grbric_ID surf_IDin      Iref
         0         0         0         0         0         0
#   Igmerg                        Cgmerg              Cnmerg               Ptole
         0                         1e-04                1E-4                   0
#                 qa                  qb                Hmin          delta_Tsca          delta_Tmin
                   0                   0                   0                   0                   0
#   Ilvout    Nlayer   Nfacmax    Nppmax    Ifvani
         1         0         0         0         0
Generic /FVMBAG2 card:
/MONVOL/FVMBAG2/46
FVMBAG2
#surf_IDex surf_IDin               Hconv
 666000001                             0
#   mat_ID                                              Pext                T0                  Ittf
 666400002                                             1e-04               296                     3
#     Njet
         1
#inject_ID   sens_IDsurf_IDinj
 666400002 666000500 666200211
#    Nvent  Nporsurf
         1         2
# surf_IDv     Iform               Avent               Bvent                              vent_title
 666000015         1                   0                   0                                        
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                1E30                   0                   0                   0
#  fct_IDt   fct_IDP   fct_IDA                       Fscalet             FscaleP             FscaleA
         0         0         0                             1                   1                   1
# fct_IDt'  fct_IDP'  fct_IDA'                      Fscalet'            FscaleP'            FscaleA'
         0         0         0                             1                   1                   1
#surf_IDps   Iformps Iblockage                                                         surface_title
 666000004         2         0                                                                      
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                   0                   0                   0                   0
#  fct_IDv                       Fscalev
 666000004                             1
#surf_IDps   Iformps Iblockage                                                         surface_title
 666000003         2         0                                                                      
#             Tstart               Tstop               dPdef              dtPdef             IdtPdef
                   0                   0                   0                   0                   0
#  fct_IDv                       Fscalev
 666000003                             1
#              Cmerg             Tswitch             Iswitch             Pswitch
               1e-04                20.0                   0                 0.0 
#                CFL              DT_min
                 0.0                 0.0

The /MONVOL/FVMBAG2 card is available as of 2021.1. It is an exact replication of the /MONVOL/FVMBAG1 card. Obsolete and non-used input is removed from /MONVOL/FVMBAG2. This makes it simple and easy to use. Some differences in the results between the /MONVOL/FVMBAG1 and the /MONVOL/FVMBAG1 card may come when injection velocity in /MONVOL//FVMBAG1 is set different from 300m/s. This value is hard coded in the /MONVOL/FVMBAG2 card.

The closed airbag external surface should be defined using /SURF/PART and reference a set of shell components with normals directed outwards.

The scaling parameters, Ascale_T, Ascale_P, Ascale_S, Ascale_A, and Ascale_D are not used.

Atmospheric values are defined for initial air material, initial temperature, and initial pressure.

The parameter, Ittf should be set to 3. In this case, vents are activated at TTF of the first injector given in the sensor referenced in /MONVOL/FVMBAG1 and all time dependent parameters and curves controlling vent openings and porosities will be shifted by the sense activation time of the first injector

The number of injectors is specified by the Njet flag. Elements used as an injection surface should be place into separate PART component, which belongs either to the external or internal airbag surface. Different injectors cannot use same elements for injector surfaces.

Time to fire (TTF) to start gas injection should be defined in /SENSOR. Global parameter definition /PARAMETER can be used to parametrize input of the TTF and other airbag parameters.

The function for injection velocity should be set at a constant value of approximately the velocity of sound of injected gas. This function does not have significant impact to simulation results.

Option Iequil=1 should be used. The option provides a simplified FVM cycling before TTF.

The function for injection velocity should be set at a constant value of approximately the velocity of sound of injected gas. This function does not have significant impact to simulation results.

Internal surfaces (internal walls, baffles, and so on) shall be defined as a collection of components and referenced in the surf_IDin field.

It is strongly recommended to close all important inter-chamber openings using separate void components with all nodes attached to fabric component. This should be done before the airbag folding to avoid intersections with other airbag components. By adding these void elements, the finite volumes which belong to different chambers of airbag during deployment simulation will not be merged during the simulation. This also allows the output and control mass flow between different chambers of airbag to be monitored using /TH/SURF.
Note: External and internal airbag components, inter-chamber voids and void components that represent venting should not have geometric intersections. The creation of the finite volume mesh is not possible when there is any intersection.


Figure 1. Simple sleeve Airbag with 2 chambers

The Initial Finite Volume mesh is created automatically when the option /MONVOL/FVMBAG1 Kmesh=14 is used and no manually created initial tetra Finite Volume mesh is defined as described in the next section. Next, the airbag is checked to make sure no intersections exist in the airbag external and internal surfaces. If no intersections exist, the Finite Volume mesh is created. If the Finite Volume mesh cannot be created due to intersections in the airbag components, an error message is written with the possible node/element numbers and positions that are causing the problem with creation of Finite Volume mesh. When this happens, HyperMesh can be used to inspect and correct the issues with the airbag mesh. Use the check 2Dmesh option in the tetramesh panel, with default setting to see if the external and internal airbag components are acceptable for tetra mesh generation. Tetra mesh created by Radioss is output as Radioss include file MONVOL.

In case when four node shells are used (it is possible since 2021.2) Radioss performs so called “smart split” to split four node shells into three node shells without adding intersections. After splitting, Radioss creates tetra mesh as usual.
Note:smart split” mesh is used only to create the tetra mesh. All simulation is performed using original four node shell and tria shell mesh in this case.
HyperMesh can also be used to manually generate the initial Finite Volume mesh as tetra elements. In this case, all external and internal components of the airbag should be defined when creating the mesh. The “Fixed trias/quads to tetra mesh” option should be used to make sure that the original surface mesh is not changed. Use the option tetramesh option “check 2Dmesh” with default setting allows to check whether the external and internal airbag components are acceptable for tetra mesh generation.


Figure 2.

The initial Finite Volume mesh /TETRA4 elements should be place into a separate /PART and assigned the material /MAT/VOID and property /PROP/VOID. The mesh must completely fill the airbag volume.

Example of tetra component definition of initial Finite Volume mesh inside of airbag:
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/PART/8
TETRA4
          8         8         0
/MAT/VOID/8
tetra
/PROP/VOID/8
tetra
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
To make sure that the tetra mesh fills the entire internal airbag volume, verify in the Starter output file that the INITIAL VOLUME OF MONITORED VOLUME = SUM VOLUME OF FINITE VOLUMES listed in the same file. Also, verify that the NUMBER OF FINITE VOLUMES (1568 in present case) is the same as the number of tetras created in HyperMesh.
INITIAL VOLUME OF MONITORED VOLUME. . .= 299199.9998912

VOLUME NUMBER          1
NUMBER OF SURFACE POLYGONS. . . . . . .=      1200
NUMBER OF SURFACE TRIANGLES . . . . . .=      1200
NUMBER OF COMMUNICATION POLYGONS. . . .=      2536
NUMBER OF COMMUNICATION TRIANGLES . . .=      2536
NUMBER OF FINITE VOLUMES. . . . . . . .=      1568
MIN FINITE VOLUME VOLUME. . . . . . . .=  66.66666700000         (FINITE VOLUME ID 292)
INITIAL MERGING VOLUME. . . . . . . . .=  19.08163264612
SUM VOLUME OF FINITE VOLUMES. . . . . .= 299199.9998912
SUM AREA SURFACE TRIANGLES. . . . . . .=  230031.1439046
SUM MASS OF FINITE VOLUMES. . . . . . .= 3.9428379122204E-04
If the tetra mesh created in HyperMesh does not completely fill the airbag volume, then Radioss will try to fill the extra volume. When this happens, the following warning message appears in the Starter output file.
WARNING ID :          631
** WARNING IN FVMBAG DEFINITION
DESCRIPTION : 
-- MONITORED VOLUME ID : 1
-- MONITORED VOLUME TITLE : SAB
IN LOCAL FRAME DIRECTION 1
GIVEN LENGTH 0.000000000000 IS SMALLER THAN BOUNDING LENGTH 301.4996942325
IT IS RESET TO 304.5146911748
WARNING ID :          631
** WARNING IN FVMBAG DEFINITION
DESCRIPTION : 
-- MONITORED VOLUME ID : 1
-- MONITORED VOLUME TITLE : SAB
IN LOCAL FRAME DIRECTION 2
GIVEN LENGTH 0.000000000000 IS SMALLER THAN BOUNDING LENGTH 100.0000000000
IT IS RESET TO 101.0000000000
WARNING ID :          631
** WARNING IN FVMBAG DEFINITION
DESCRIPTION : 
-- MONITORED VOLUME ID : 1
-- MONITORED VOLUME TITLE : SAB
IN LOCAL FRAME DIRECTION 3
GIVEN LENGTH 0.000000000000 IS SMALLER THAN BOUNDING LENGTH 1.535460483274
IT IS RESET TO 1.550815088107

The quality of tetra mesh is not important because the finite volumes based on the tetra mesh will be merged according to the strategy provided by the merging parameters. I g m e r g MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ , C g m e r g MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ , and C n m e r g MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ can be entered in /MONVOL/FVMBAG1. However, it is recommended to deactivate the merging process during Starter initialization by setting C g m e r g MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ = C n m e r g MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ =1e-04 and use an advanced merging algorithm in the Engine, where the same parameters can be defined in /FVMBAG/MODIF or /DT/FVMBAG/Iflag.

From version 2019.1, merging parameters and time step parameters can be input directly in the /MONVOL/FVMBAG1 and /MONOL/FVMBAG2 cards.

If /MONVOL/FVMBAG1 I f v a n i MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaWGNbGaamyBaiaadwgacaWGYbGaam4zaaqabaaaaa@3B95@ =1, then the animation file *A000 shows the initial Finite Volumes.


Figure 3. Representation of Initial Finite Volumes in *A000 File

The number of tetra elements depends on the complexity and the type of airbag. For example, a side airbag can be about 30,000 – 50,000 tetras, and a curtain airbag 250,000 – 500,000 tetras.

The automatic volume meshing option /MONVOL/FVMBAG1 Kmesh=1, should not be used. It is recommended to either use Kmesh=14 (HyperMesh tetra mesher) or manually create the tetramesh in HyperMesh.