5. ESonix Model

5.1. Download our latest model template

5.2. What is a decompression model?

Nothing more than a bunch of volumes connected through vents! You can figure your A/C Layout:

Aircraft layout

Fig. 5.1 Aircraft Layout

As being a network of volumes:

Aircraft model

Fig. 5.2 Aircraft Model

Creating a model is just matter of describing this network, in terms of volumes and vents.

Additionally, some data about load cases need to be provided. By load case, we mean opening to ambient.

How to fill the model template

This document describes how to build a reliable model. As of now, model are described via an excel spreadsheet embedding at least three tabs:

  • Load_Cases (mandatory)
  • Volumes (mandatory)
  • Connections (mandatory)

Additionally, the following tabs may be included:

  • Dyn_Attributes (optional)

Warning

tabs name and columns headers are case-sensitive.

Note

Additional tabs are allowed and will be ignored.

5.3. tab “Load_Cases”

This tab is mandatory.

Load cases define the different opening holes to simulate. Besides the opening holes themselves, load cases also define the opening hole’s discharge coefficient and the differential pressure.

Parameters

Table 5.1 Load Cases parameters
  description default units
id Load Case ID mandatory no units
vol_i ID of Exploded Volume(s) mandatory no units
opening_hole Raw opening area mandatory [m^2 | in^2]
cp Discharge coefficient mandatory no units
altitude Flying altitude blank [m | in]
pressure_coeff Aircraft pressure coefficient 0 no units
mach_number Aircraft mach number 0 no units
p_atm Atmosphere pressure value blank [bar | psi]
t_cabin Cabin initial temperature 296 [K]
p_cabin Cabin initial pressure mandatory [bar | psi]
label Load Case label mandatory no units
cddyn Dynamical CD (blank or -1 (default), 0 (never), 1(Jobson) -1 no units

Load_Cases/id

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

Load Case ID [no units]

Load_Cases/vol_i

Flags

Type: Str | Default: None | Mandatory: True | Unique: False

Short description:

ID of Exploded Volume(s) [no units]

The vol_i parameter refers to the exploded volume, the one beeing connected to the ambient. Two kinds of parameters are allowed:

  • and integer refering to an existing volume ID
  • a string “<id1> + <id2> [ + <idn>…] refering to existing volume IDs

When volume IDs are summed, ESonix will automatically merge those volumes and reroute connections.

Load_Cases/opening_hole

Flags

Type: Float in range ]0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Raw opening area [m^2] or [in^2]

Opening hole is defining the connection to the ambient. It is defined by far_25.365_nodatee as a function of the fuselage diameter. You can use the toolbox to calculate it: http://www.aero-sonix.com/toolbox/opening_hole

Load_Cases/cp

Flags

Type: Float in range [0; 1] | Default: None | Mandatory: True | Unique: False

Short description:

Discharge coefficient [no units]

Load_Cases/altitude

Flags

Type: Float in range [0; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Flying altitude [m] or [in]

⚠ This parameter is incompatible with Load_Cases parameters: p_atm

The interesting value for a load case is mainly the differential pressure between the cabin pressure and the ambient pressure. Knowing the cabin pressure from aircraft manuals, or taking conservatively one atmosphere, the ambient pressure is still missing.

This ambient pressure can be calculated from a “standard atmosphere” at a given altitude. Such a tool is provided in the toolbox: http://www.aero-sonix.com/toolbox/by_altitude .

Load_Cases/pressure_coeff

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Aircraft pressure coefficient [no units]

⚠ This parameter is incompatible with Load_Cases parameters: p_atm

⚠ This parameter requires Load_Cases parameters altitude

Load_Cases/mach_number

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Aircraft mach number [no units]

Load_Cases/p_atm

Flags

Type: Float in range [0; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Atmosphere pressure value [bar] or [psi]

⚠ This parameter is incompatible with Load_Cases parameters: altitude, pressure_coeff

Load_Cases/t_cabin

Flags

Type: Float in range [0; +∞] | Default: 296 | Mandatory: False | Unique: False

Short description:

Cabin initial temperature [K]

Load_Cases/p_cabin

Flags

Type: Float in range [0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Cabin initial pressure [bar] or [psi]

Load_Cases/label

Flags

Type: Str | Default: None | Mandatory: True | Unique: False

Short description:

Load Case label [no units]

Load_Cases/cddyn

Flags

Type: Int in range [-1; +∞] | Default: -1 | Mandatory: False | Unique: False

Short description:

Dynamical CD (blank or -1 (default), 0 (never), 1(Jobson) [no units]

The cddyn flag allows to define the dynamical behavior of the explosion hole’s discharge coefficient independently from the engine selected.

The flag, if left to blank, is defaulted to -1. In this case, the selected engine will decide for its value. If set to 0 the connection will not have any dynamical discharge coefficient. In contrary, setting cddyn to 1 will force the discharge coefficient to a dynamical behavior, whatever the engine.

Preprocessing

Besides the usual units conversions, ESonix will process load cases as follows:

If p_atm is not given, Atmospheric pressure will be calculated by altitude, and optionnally mach_number and pressure_coeff.

Merged Load Cases

A special attention is taken by ESonix to handle automatically and transparently the merged load cases.

If ``raw_merging`` option is off (as set by default), when the explosion occurs in some (two or more) merged volumes, (cf. Load_Cases/vol_i parameter), ESonix will internally change the provided model by cancelling highest IDs merged volume(s). To do so, ESonix will sum all the merged volumes, change the lowest ID volume to match the new volume summed, and cancel the rest of the merged volumes.

For example, let say a load case merge volumes 1 and 3, ESonix will change volume 1 (lowest ID) such as its volume’s value match the sum of volume 1 and volume 3. Esonix will then cancel volume 3.

More over, ESonix will also automatically reroute connections to match the new layout, as explained in Fig. 5.3.

Merging internal behaviour

Fig. 5.3 Merging internal behaviour

Once the model is reinitialized (don’t forget to check the analysis logs to check what ESonix did!), calculations are performed using the new modified models. When storing results on disk, ESonix will then map the results (new volumes, new connections) to regular existing volumes and interfaces, such as results data mapping will be transparent to the user.

As an illustration for interface 2/3 is:

  • \(P_3(t)=P_1(t)\)
  • \(T_3(t)=T_1(t)\)
  • \(\Delta_{P_{2(2>3)}}(t)=-\Delta_{P_{2(1>2)}}(t)\)
  • \(\dot{m}_{2(2>3)}(t)=-\dot{m}_{2(1>2)}(t)\)
  • and so on…

Note

The negative sign for \(\Delta_P\) and \(\dot{m}\) comes with the inversion of the connection: [2>3] = -[3>2]

User would therefore have a transparent access to \(\Delta_{P_{2/3}}\) although this interface does not exist for such a merged load case.

If ``raw_merging`` option is on, ESonix will not remap values and results would therefore present raw results, as calculated by ESonix.

Note

The raw_merging option is new starting from version 2.3. Previous ESonix versions were showing results as if this option was “on”, therefore, previous ESonix version were showing raw values.

5.4. tab “Volumes”

This tab is mandatory.

Volumes are the base parameters for a model decompression. They act as a tank of air. This air has a given pressure and temperatures at initial conditions, when t=0 sec.

As soon as one of the volume is connected to the ambient, the air located in the different volumes will be sucked by the ambient, leading to pressure on partitions.

Parameters

Table 5.2 Volumes parameters
  description default units
id Volume ID mandatory no units
label Volume label mandatory no units
deck Deck Location mandatory no units
group Group (sub-deck) identification for Unified Model blank no units
sta Station mandatory [m | in]
rbl RBL mandatory [m | in]
volume Volume (size value) mandatory [m^3 | in^3]
deor Deck Explosion Occupation Rate 0.0 no units
veor Volume Explosion Occupation Rate 0.0 no units

Volumes/id

Flags

Type: Int in range [0; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

Volume ID [no units]

Volumes/label

Flags

Type: Str | Default: None | Mandatory: True | Unique: False

Short description:

Volume label [no units]

Volumes/deck

Flags

Type: Int in range [-1; 2] | Default: 0 | Mandatory: True | Unique: False

Short description:

Deck Location [no units]

The mandatory deck parameter is used for organizing the results only and has no effects on calculations themselves. An integer is to be provided as per deck location, knowing by default:

  • deck==-1: volume located in the cargo
  • deck==0: volume located at the main deck
  • deck==1: volume is on the second deck (in case of dual deck body)
  • deck==2: volume is a ceiling compartment

Volumes/group

Flags

Type: Int in range [-∞; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Group (sub-deck) identification for Unified Model [no units]

Volumes/sta

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: True | Unique: False

Short description:

Station [m] or [in]

Volumes/rbl

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: True | Unique: False

Short description:

RBL [m] or [in]

Volumes/volume

Flags

Type: Float in range ]0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Volume (size value) [m^3] or [in^3]

Volumes/deor

Flags

Type: Float in range ]-1; 1[ | Default: 0.0 | Mandatory: False | Unique: False

Short description:

Deck Explosion Occupation Rate [no units]

DEOR stands for “Deck Explosion Occupation Rate” and defines how the volume is reduced when the explosion occurs somewhere in the same deck as the given volume. For example, this parameter is useful to initialize the cargo volumes with container inside when explosion occurs in the cargo.

Volumes/veor

Flags

Type: Float in range ]-1; 1[ | Default: 0.0 | Mandatory: False | Unique: False

Short description:

Volume Explosion Occupation Rate [no units]

VEOR stands for “Volume Explosion Occupation Rate” and defines how the volume is reduced when the explosion occurs in the volume itself.

DEOR/VEOR decision tree

It is important to understand how ESonix interprets DEOR and VEOR. Before each load-case triggering, all the volumes are checked against the explosion’s volume. For a given load-case, each volume can be in one of the following situation:

  1. Case 1: the explosion volume
  2. Case 2: located at the same group (or deck if group parameter is blank)
  3. Case 3: anywhere else

Depending on the situation, ESonix will alter the volume’s volume as described in the DEOR/VEOR decision tree.

For each Load Case LCID:
For each Volume VID located in group GID:

\tikzstyle{treenode}=[shape=diamond, rounded corners,
               draw, align=center, aspect=2,
               top color=white, bottom color=blue!20]
\tikzstyle{DIDnode}=[treenode, bottom color=red!30]
\tikzstyle{VIDnode}=[treenode]
\tikzstyle{equation}=[rectangle,draw]
[
    grow                    = right,
    sibling distance        = 56em,
    level distance          = 52em,
    edge from parent/.style = {draw, -latex},
    every node/.style       = {font=\footnotesize},
    sloped
  ]
  \node [DIDnode] at (0,0) {Explosion in\\ volume VID?}

    % YES: Volume is altered by VEOR
    child { node [equation]  at (+4,-1.5){$V_{LCID}=\\V_{model} - \texttt{VEOR} \times V_{model}$}
    edge from parent node [below left] {Yes}}

    % NO:
    child { node [VIDnode]  at (-4,-1.5){Explosion in\\Group GID?}
       child { node [equation]  at (-3,-2){$V_{LCID}=\\V_{model} - \texttt{DEOR} \times V_{model}$}
       edge from parent node [below right] {Yes}}
       child { node [equation]  at (+3,-2){$V_{LCID}=\\V_{model}$}
       edge from parent node [below left] {No}}

    edge from parent node [below right] {No}

          };

DEOR - VEOR decision tree

By default (when left blank), both parameters are set to 0, such as both alteration equations (\(V_{LCID}=f(\texttt{DEOR})\) and \(V_{LCID}=f(\texttt{VEOR})\)) are invariants.

The alteration equations are:

  1. Case 1: Explosion in the volume: \(V_{LCID}=V_{model} - \texttt{VEOR} \times V_{model}\).
  2. Case 2: Explosion in the group (or deck): \(V_{LCID}=V_{model} - \texttt{DEOR} \times V_{model}\).
  3. Case 3: Explosion in another group (or deck): no alteration

See also

Tutorial #4 uses “VEOR” parameter in the section Unified model.

Preprocessing

Right before the actual run is solved, the model the user uploaded is preprocessed. For the volumes, it consists in setting blank cells to default values as defined in Volumes parameters.

Common examples

Volume reduction for a cargo compartment using DEOR

Volumes are really easy to idealize. Nevertheless, we will illustrate the use of the DEOR parameter.

A regular LD-6 cargo container has an internal volume of 8.9m³. Let say that a cargo compartment has a volume of 25m³ and can therefore welcome two containers, as shown in ld6_loaded_cargo.

It may be interesting to simulate the A/C with cargo empty for an explosion occurring in the cabin, and cargo occupied for an explosion in the cargo. Instead of creating two models, run two analysis and compare them, it is more convenient to inform ESonix of the expected behavior.

Setting DEOR will inform ESonix that, when the explosion occurs in the cargo, then the volumes of the cargo should be reduced by the DEOR factor.

If DEOR is null or blank, no reduction will therefore be applied.

In the current example, the volume occupied by the two containers is \(8.9 \times 2 = 17.8m^3\). Assuming that the both containers are full, the volume of air available is therefore \(25-17.8=7.2m^3\). The initial volume of air is therefore reduced by the DEOR coefficient \(DEOR=1 - \frac{7.2}{25}=0.712\).

Cargo compartment with two LD6 containers

Fig. 5.4 Cargo compartment with two LD6 containers

Table 5.3 Cargo Volume example featuring DEOR
Column User input Preprocess Actual input
id 9 9
volume 25 25
label “cargo example” “cargo example”
deck -1 -1
sta 5 5
rbl 0 0
deor 0.712 0.712
veor Default to zero 0

5.5. tab “Connections”

This tab is mandatory.

A connection is connecting two volumes between them. Its geometry and behaviour will define how the mass of air in those volumes will be exchanged between them.

Basically, a connection always connect two volumes (aka vol I and vol J) and is therefore located at an interface.

When defining a connection, take care to always set volume I ID to the lowest ID of both volumes.

Example: let say you have two volumes to connect, ID2 and ID7, Volume I will always be volume ID2 and Volume J will always be volume ID7.

See also

Tutorial #2 is dedicated to decompression features whereas Tutorial #3 is dedicated to doors

Parameters

Table 5.4 Connections parameters
  description default units
id Connection ID mandatory no units
vol_i ID of volume I mandatory no units
vol_j ID of volume J mandatory no units
comments Free text   no units
door Door Frame Area 0 [m^2 | in^2]
opening_latency Feature opening latency time 0 [sec]
vent_area_i_to_j Decompression raw area 0 [m^2 | in^2]
opening_pressure_i_to_j Pressure Threshold 0 [bar | psi]
opening_time_i_to_j Feature Opening Time 0 [sec]
cp_i_to_j Discharge Coefficient 0 no units
vent_area_j_to_i Decompression raw area blank [m^2 | in^2]
opening_pressure_j_to_i Pressure Threshold blank [bar | psi]
opening_time_j_to_i Feature Opening Time blank [sec]
cp_j_to_i Discharge Coefficient blank no units
exvar Exploded Volume Area Reduction 0 no units
ovar Occupied Volume Area Reduction 0 no units
mdot Fixed mass flow rate 0 [kg/sec | lbs/sec]
fdl Partial Darcy friction factor fd * L 0 [m | in]
cddyn Dynamical CD (blank or -1 (default), 0 (never), 1(Jobson) -1 no units
slave_of Master connection ID -1 no units
slave_k1 theta_slave = k1 * theta_master + k2 1 no units
slave_k2 theta_slave = k1 * theta_master + k2 1 no units
slave_involved is slave connection involved in item’s opening 1 no units

Connections/id

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

Connection ID [no units]

Connections/vol_i

Flags

Type: Int in range [0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

ID of volume I [no units]

Connections/vol_j

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

ID of volume J [no units]

Connections/comments

Flags

Type: Str | Default: | Mandatory: False | Unique: False

Short description:

Free text [no units]

Connections/door

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Door Frame Area [m^2] or [in^2]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

Decompressing Doors are kind of special venting. Two cases exist: or the full door acts as decompression feature, or the door features an internal decompression panel.

In the first case, the door area (door column) needs to be equal to vent_area_*. This is very often the case of swivel doors. If the doors opens only in one direction, the relevant opening_pressure_* need to be set to an unreachable pressure value, such as it will never open.

In the latter case, the door area will be different from the vent_area_*, and necessarly greater.

Note

For all the cases, the door parameter only deals with opened-doors or closed-doors initial conditions. Only the `vent_area` parameters have a dynamical attribute.

Connections/opening_latency

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Feature opening latency time [sec]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

Connections/vent_area_i_to_j

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Decompression raw area [m^2] or [in^2]

Connections/opening_pressure_i_to_j

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Pressure Threshold [bar] or [psi]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

Connections/opening_time_i_to_j

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Feature Opening Time [sec]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

Connections/cp_i_to_j

Flags

Type: Float in range [0; 1] | Default: 0 | Mandatory: False | Unique: False

Short description:

Discharge Coefficient [no units]

Connections/vent_area_j_to_i

Flags

Type: Float in range [0; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Decompression raw area [m^2] or [in^2]

Connections/opening_pressure_j_to_i

Flags

Type: Float in range [0; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Pressure Threshold [bar] or [psi]

Connections/opening_time_j_to_i

Flags

Type: Float in range [0; +∞] | Default: nan | Mandatory: False | Unique: False

Short description:

Feature Opening Time [sec]

Connections/cp_j_to_i

Flags

Type: Float in range [0; 1] | Default: nan | Mandatory: False | Unique: False

Short description:

Discharge Coefficient [no units]

Connections/exvar

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Exploded Volume Area Reduction [no units]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

EXVAR stands for “EXploded Volume vent Area Reduction”. Like “OVAR”, “EXVAR” defines a way to dynamically recalculate the vent area between two volumes when one of the connected volumes (I or J) is the volume where the explosion occurs.

If one of the connected volumes is the one where the explosion occurs, the “i to j” and “j to i” venting area are reduced as follows:

\[vent\_area = vent\_area - EXVAR \times vent\_area\]

Connections/ovar

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Occupied Volume Area Reduction [no units]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

OVAR stands for “Occupied Volume vent Area Reduction”. The optional column “ovar” (default to 0 if omitted) allows ESonix to dynamically recalculate the vent area for each load case.

This parameter is specially designed to simulate the jam of an opening feature when the incoming volume is occupied. For example, a decompression panel may be blocked by a container in the cargo.

If the connection is leaving an occupied volume (parameters “DEOR” or “VEOR” for the volume #I), the vent area from J to I is reduced by this parameter as follows:

\[vent\_area\_j\_to\_i = vent\_area\_j\_to\_i - OVAR \times vent\_area\_j\_to\_i\]

Likewise, if the connection is going to an occupied volume (parameters “DEOR” or “VEOR” for the volume #J), the vent area from I to J is reduced by this parameter as follows:

\[vent\_area\_i\_to\_j = vent\_area\_i\_to\_j - OVAR \times vent\_area\_i\_to\_j\]

Connections/mdot

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Fixed mass flow rate [kg/sec] or [lbs/sec]

⚠ This parameter is incompatible with Connections parameters: cddyn, door, exvar, fdl, opening_latency, opening_pressure_i_to_j, opening_time_i_to_j, ovar, sonic

⚠ This parameter requires Connections parameters cp_i_to_j, vent_area_i_to_j

Connections/fdl

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Partial Darcy friction factor fd * L [m] or [in]

⚠ This parameter is incompatible with Connections parameters: cddyn, door, exvar, mdot, opening_latency, opening_pressure_i_to_j, opening_time_i_to_j, ovar, sonic

⚠ This parameter requires Connections parameters cp_i_to_j, vent_area_i_to_j

The parameter fdl is used to idealize a pipe as an ESonix connection. The parameter fdl partially refers to Darcy Friction factor. Actually the ESonix fdl parameter equals the Darcy friction factor \(f_d\) multiplied by the pipe’s length (\(\text{fdl} = f_d \times L_{pipe}\)).

The pipe’s internal velocity is then calculated as:

\[u = \sqrt{\frac{\Delta_p \cdot D_{pipe}}{2 \cdot \texttt{fdl} \cdot \bar{\rho}}}\]

The pipe’s diameter \(D_{pipe}\) is internally retrieved by ESonix by the formula:

\[D_{pipe} = \sqrt{\frac{4 \times \texttt{vent\_area\_i\_to\_j} \times \texttt{cp\_area\_i\_to\_j}}{\pi}}\]

Connections/cddyn

Flags

Type: Int in range [-1; +∞] | Default: -1 | Mandatory: False | Unique: False

Short description:

Dynamical CD (blank or -1 (default), 0 (never), 1(Jobson) [no units]

⚠ This parameter is incompatible with Connections parameters: fdl, mdot

The cddyn flag allows to define the dynamical behavior of a connection’s discharge coefficient independently from the engine selected.

The flag, if left to blank, is defaulted to -1. In this case, the selected engine will decide for its value. If set to 0 the connection will not have any dynamical discharge coefficient. In contrary, setting cddyn to 1 will force the discharge coefficient to a dynamical behavior, whatever the engine.

Connections/slave_of

Flags

Type: Int in range [-1; +∞] | Default: -1 | Mandatory: False | Unique: False

Short description:

Master connection ID [no units]

⚠ This parameter requires Connections parameters slave_involved, slave_k1, slave_k2

Connections/slave_k1

Flags

Type: Float in range [-∞; +∞] | Default: 1 | Mandatory: False | Unique: False

Short description:

theta_slave = k1 * theta_master + k2 [no units]

⚠ This parameter requires Connections parameters slave_of

Connections/slave_k2

Flags

Type: Float in range [-∞; +∞] | Default: 1 | Mandatory: False | Unique: False

Short description:

theta_slave = k1 * theta_master + k2 [no units]

⚠ This parameter requires Connections parameters slave_of

Connections/slave_involved

Flags

Type: Int in range [0; 1] | Default: 1 | Mandatory: False | Unique: False

Short description:

is slave connection involved in item’s opening [no units]

⚠ This parameter requires Connections parameters slave_of

Preprocessing

Right before the actual run is solved, the model the user uploaded is preprocessed (cf. Fig. 6.1). This has a particular meaning for connections and can be described by two different phases:

  1. Initialisation of the *_i_to_j columns.
  2. Symmetrization of the *_j_to_i columns.

Step 1: Initialisation

Initialisation deals with the *_i_to_j columns. This phase does not directly affect the *_j_to_i ones.

For each row of the model, any empty or blank cell within the *_i_to_j columns will be set to 0.0.

Step 2: Symmetrization

Symmetrization deals with the *_j_to_i columns. This phase never affects the *_i_to_j ones.

This “symmetrisation” process means that connections are assumed symmetric by default.

The user shall fill the *_i_to_j columns. *_j_to_i is not mandatory. The empty *_j_to_i columns will be automatically copied from *_i_to_j.

A connection may be partially symmetric. For example, a connection may have the same discharge coefficient (cp) for both ways, but different venting area. In this case, only the asymmetric values need to be filled.

Common examples

The following examples show the most common connections and propose the best way to idealize them.

Passive vent

Passive vents are the most simple connections. Passive vents are always symmetrical (although you may define unsymmetrical venting area).

Create a project

Fig. 5.5 Passive vent (defined as a grid) between volumes 2 and 7

Example: A connection (ID19) is a passive vent (symmetric) between volumes 2 and 7. The total vent area is 0.3m^2, with a discharge coefficients of 0.4. Such a feature is shown at Fig. 5.5.

The ESonix pre-process phase would prepare the full connection as described below (in bold the default values determined by ESonix). Pay attention to the symmetrization process to fill the _j_to_i columns.

Table 5.5 Passive vent parameters Example
Column User input Preprocess Actual input
id 19 19
vol_i 2 2
vol_j 7 7
door Default to zero 0
opening_latency Default to zero 0
vent_area_i_to_j 0.3 0.3
opening_pressure_i_to_j Default to zero 0
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.4 0.4
vent_area_j_to_i Default to vent_area_i_to_j 0.3
opening_pressure_j_to_i Default to opening_pressure_i_to_j 0
opening_time_j_to_i Default to opening_time_i_to_j 0
cp_j_to_i Default to cp_i_to_j 0.4
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Standard decompression panel (Bi-directionnel)

Decompression panels are activated once the delta pressure pushing on it reach a target value. It is most of the time fully symmetric: the same delta pressure threshold triggers the mechanism and the same vent area is cleared.

Create a project

Fig. 5.6 Standard Decompression panel between volumes 2 and 7 (designed with ball-catch for this particular example)

Example: A decompression panel defines the connection ID19. The total released area is 0.5m^2. The panel opens for a pressure of 1.5bar, and is assumed to open instantaneously (opening_time = 0). Such a feature is shown at Fig. 5.6.

The ESonix pre-process phase would prepare the full connection as described below (in bold the default values determined by ESonix). Pay attention to the symmetrization process to fill the _j_to_i columns.

Table 5.6 Standard decompression panel parameters Example
Column User input Preprocess Actual input
id 19 19
vol_i 2 2
vol_j 7 7
door Default to zero 0
opening_latency Default to zero 0
vent_area_i_to_j 0.3 0.3
opening_pressure_i_to_j 1.5 1.5
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.6 0.6
vent_area_j_to_i Default to vent_area_i_to_j 0.3
opening_pressure_j_to_i Default to opening_pressure_i_to_j 1.5
opening_time_j_to_i Default to opening_time_i_to_j 0
cp_j_to_i Default to cp_i_to_j 0.6
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Unidirectional decompression panel

Unidirectional decompression panels are activated only for one direction

Create a project

Fig. 5.7 Unidirectional decompression panel between volumes 2 and 7

Example: Same example as above, but the panel can only open from 7 to 2. Such a feature is shown at Fig. 5.7.

One way to achieve this is to reduce vent_area_i_to_j to 0 (no vent area from 2 to 7), and to set vent_area_j_to_i to 0.3.

Table 5.7 Unidirectional decompression panel parameters Example
Column User input Preprocess Actual input
id 19 19
vol_i 2 2
vol_j 7 7
door Default to zero 0
opening_latency Default to zero 0
vent_area_i_to_j Default to zero 0
opening_pressure_i_to_j Default to zero 0
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.6 0.6
vent_area_j_to_i 0.3   0.3
opening_pressure_j_to_i 1.5 1.5
opening_time_j_to_i Default to opening_time_i_to_j 0
cp_j_to_i 0.6   0.6
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Warning

once the panel is open the air can freely flow in both direction. If the differential pressure inverts the air flow from “i_to_j” will be based on the actual calculated opened area with the discharge coefficient “cp_i_to_j”. Therefore this discharge coefficient should be always specified.

Note

another way of achieving a unidirectional decompression panel opening would be to set an artificially high opening pressure in the opposite direction.

Nested differential decompression panel

This particular design is sometimes useful to optimize a decompression layout.

Create a project

Fig. 5.8 Nested differential Decompression panel between volumes 2 and 7

Example. As shown in Fig. 5.8, a decompression feature (let say with ID 23) can open in both directions with the same triggering pressure, but with different area. This would be achieved this way:

Table 5.8 Nested decompression panel parameters Example
Column User input Preprocess Actual input
id 23 23
vol_i 2 2
vol_j 7 7
door Default to zero 0
opening_latency Default to zero 0
vent_area_i_to_j 0.3 0.3
opening_pressure_i_to_j 1.5 1.5
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.6 0.6
vent_area_j_to_i 0.8   0.8
opening_pressure_j_to_i Default to opening_pressure_i_to_j 1.5
opening_time_j_to_i Default to opening_time_i_to_j 0
cp_j_to_i Default to cp_i_to_j 0.6
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Simple non-decompressing door

A non-decompressing door is considered as a passive vent when the opened-doors configuration is ran. No more data except door and cp_i_to_j are required (beside id, vol_j and vol_j!)

Create a project

Fig. 5.9 Simple non-decompressing door between volumes 2 and 7

Example: A simple 2.2m² door (let say ID9) connects compartments 2 and 7 (cf. Fig. 5.9).

Usually, such a big clean vent is assumed to have a discharge coefficient of 0.8. When the decompression analysis is ran with the closed-doors initial conditions, this venting is ignored (the door is closed and will remain closed) whereas for the opened-doors initial conditions, the full door is opened and will remain opened as a 2.2m² passive vent.

Table 5.9 Simple Non-decompressing door
Column User input Preprocess Actual input
id 9 9
vol_i 2 2
vol_j 7 7
door 2.2   2.20
opening_latency Default to zero 0
vent_area_i_to_j Default to zero 0
opening_pressure_i_to_j Default to zero 0
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.8 0.8
vent_area_j_to_i   0
opening_pressure_j_to_i Default to opening_pressure_i_to_j 0
opening_time_j_to_i Default to opening_time_i_to_j 0
cp_j_to_i Default to cp_i_to_j 0.8
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Simple decompressing door

A decompressing door is considered to clear its full frame area when the \(\Delta_P\) reach the triggering pressure. For an opened-door initial condition run, the decompressing feature will not be active, since the door itself is already opened.

This kind of decompression item is usually not symmetric: the static door frame allows the door to rotate only in one direction.

Create a project

Fig. 5.10 Simple decompressing door between volumes 2 and 7

Example: The same example as above is used, except that the door is able to open from 7 to 2 when \(\Delta_P\) reaches 1.5bar. Additionnally, an opening time of 0.3 seconds will be used. Will still need to set the discharge coefficient for i_to_j since the door will be opened for the opened-door initial conditions.

Table 5.10 Simple decompressing door
Column User input Preprocess Actual input
id 9 9
vol_i 2 2
vol_j 7 7
door 2.2   2.20
opening_latency Default to zero 0
vent_area_i_to_j Default to zero 0
opening_pressure_i_to_j Default to zero 0
opening_time_i_to_j Default to zero 0
cp_i_to_j 0.8 0.8
vent_area_j_to_i 2.2   2.2
opening_pressure_j_to_i 1.5   1.5
opening_time_j_to_i 0.3   0.3
cp_j_to_i Default to cp_i_to_j 0.8
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

Door nesting a decompression panel

Contrary to the example above (Simple decompressing door), the door has no decompression mechanism, but hosts a nested decompression panel (cf. Fig. 5.11).

For illustration purposes, and to keep a certain level of complexity, the nested panel is considered blind –opening only from volume 2 to volume 7– which is not common.

The door itself will not be triggered with maximum Δp. However its 1.05m² nested panel will, only from volume 2 to volume 7.

Values for i_to_j data has to be filled, and values for j_to_i as well, but set to 0 to avoid symmetrization (at least for the vent_area), as shown in Table 5.11).

Create a project

Fig. 5.11 Door nesting a decompression panel opening from 2 to 7

Warning

It is often a bad idea to define the panel as another item (another row) as the door. Indeed, in the latter case, during an opened-door load case, the panel will still be active and may be triggered, adding a new vent area that shouldn’t be!

Table 5.11 Door with nested decompression Panel
Column User input Preprocess Actual input
id 9 9
vol_i 2 2
vol_j 7 7
door 2.2   2.20
opening_latency Default to zero 0
vent_area_i_to_j 1.05   1.05
opening_pressure_i_to_j 1.5   1.5
opening_time_i_to_j 0.3   0.3
cp_i_to_j 0.8 0.8
vent_area_j_to_i 0   0
opening_pressure_j_to_i Default to opening_pressure_i_to_j 1.5
opening_time_j_to_i Default to opening_time_i_to_j 0.3
cp_j_to_i Default to cp_i_to_j 0.8
comments Default to null string “”
ovar Default to zero 0
exvar Default to zero 0

5.6. tab “Dyn_Attributes”

This tab is optional.

As of version 2, ESonix is able to dynamically compute the opening of a decompression feature. This means that there is no need to calculate the opening time based on an averaged DeltaP, the opening will be calculated step by step, using the actual pressure applied on the item.

This is a major asset in reaching precision for opening times, and therefore for the whole simulation.

To keep consistancy with version 1 and for retrocompatibility, this new feature is optional.

Setting dynamical attributes to existing defined connections consists in describing those dynamical attributes in an additional tab: dyn_attributes.

Linear opening time vs. Dynamic opening time

The “Dyn_Attributes” optional tab completes (and sometimes supersedes) the “Connections” tab.

It aims to provide accurate opening behaviour by taking into account the item’s mass, actual differential pressure, and many other parameters.

Opening time

Fig. 5.12 Linear vs. dynamic opening time

Parameters

Table 5.12 Dyn Attributes parameters
  description default units
id Connection ID mandatory no units
axis Panel’s configuration mandatory no units
a Panel’s length mandatory [m | in]
b panel’s width mandatory [m | in]
mass Panel’s mass mandatory [kg | lbs]
thk Panel’s thickness 0 [m | in]
cx Panel’s drag coefficient 0 no units
cos_ij_g Cosinus of the angle between normal to panel and gravity (-z) 0 no units
max_distance_i_to_j Panel’s max opening distance from i to j 1000 [m | in]
max_distance_j_to_i Panel’s max opening distance from j to i 1000 [m | in]
max_angle_i_to_j Panel’s max opening angle from i to j 90 [deg]
max_angle_j_to_i Panel’s max opening angle from j to i 90 [deg]
prestress Panel’s hinge prestress 0 [{‘test’: ‘axis<2’, True: ‘N*m’, False: ‘N’} | {‘test’: ‘axis<2’, True: ‘lbf*in’, False: ‘lbf’}]
stiffness Panel’s hinge stiffness 0 [{‘test’: ‘axis<2’, True: ‘N*m/rad’, False: ‘N/m’} | {‘test’: ‘axis<2’, True: ‘lbf*in/rad’, False: ‘lbf/in’}]
damping Panel’s hinge damping 0 [{‘test’: ‘axis<2’, True: ‘N*m/(rad/sec)’, False: ‘N/(m/sec)’} | {‘test’: ‘axis<2’, True: ‘lbf*in/(rad/sec)’, False: ‘lbf/(in/sec)’}]
cp_sin_theta Panel’s variable discharge coefficient 0 no units
nb_rotating_ext Number of opened triangles to take into account 0 no units
following_pressure Wether or not pressure is following the panel 1 no units
opening_area_method Method to caclulate the opening area as a function of opening angle 0 no units

Dyn_Attributes/id

Flags

Type: Int in range [0; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

Connection ID [no units]

Dyn_Attributes/axis

Flags

Type: Int in range [-1; 2] | Default: None | Mandatory: True | Unique: False

Short description:

Panel’s configuration [no units]

The axis parameter describes the topology of the panel. axis may take integer values from -1 to 2, as per the following rules:

axis=-1:Hinged panel rotating around bottom edge a
axis=0:Hinged panel rotating around side a
axis=1:Hinged panel rotating around top edge a
axis=2:Translating panel

Note

For hinged panels (-1<= axis <= 1 ), panel is always articulated around edge a. axis is then used to determine the work of the gravity.

Axis parameter for cos(ij,G)=0

Fig. 5.13 Axis parameter for cos(ij,G)=0

Dyn_Attributes/a

Flags

Type: Float in range ]0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Panel’s length [m] or [in]

In case of rotating panel, a is the item’s length along the rotation axis. For translating panels, the orientation a vs. b does not impact the calculations.

Warning

Opening area defined by a x b will ovrewrite any opening area defined in the Connections tab for the current connection ID.

Dyn_Attributes/b

Flags

Type: Float in range ]0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

panel’s width [m] or [in]

In case of rotating panel, b is the item’s length perpendicular to the rotation axis. For translating panels, the orientation a vs. b does not impact the calculations.

Warning

Opening area defined by a x b will ovrewrite any opening area defined in the Connections tab for the current connection ID.

Dyn_Attributes/mass

Flags

Type: Float in range [-∞; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Panel’s mass [kg] or [lbs]

Dyn_Attributes/thk

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s thickness [m] or [in]

The optional thickness parameter (defaulted to 0) has no impact on the panel’s inertia. This parameter is only used to take into account panel’s thickness in term of opening area latency (ie. A flat panel will release a vent area as soon as it starts to open, whereas a thick panel will require a small angle movement before disengaging).

Dyn_Attributes/cx

Flags

Type: Float in range [0; 1.5] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s drag coefficient [no units]

This optional parameter is set to 0 by default. A 0 value means that air resistance is not taken into account. Any other value would lead to an air resistance according to this drag coefficient.

A value of 1.4 is common for thin rectangular shape.

Dyn_Attributes/cos_ij_g

Flags

Type: Int in range [-1; 1] | Default: 0 | Mandatory: False | Unique: False

Short description:

Cosinus of the angle between normal to panel and gravity (-z) [no units]

Dyn_Attributes/max_distance_i_to_j

Flags

Type: Float in range [0; +∞] | Default: 1000 | Mandatory: False | Unique: False

Short description:

Panel’s max opening distance from i to j [m] or [in]

⚠ This parameter is incompatible with Dyn_Attributes parameters: max_angle_i_to_j, max_angle_j_to_i

Dyn_Attributes/max_distance_j_to_i

Flags

Type: Float in range [0; +∞] | Default: 1000 | Mandatory: False | Unique: False

Short description:

Panel’s max opening distance from j to i [m] or [in]

⚠ This parameter is incompatible with Dyn_Attributes parameters: max_angle_i_to_j, max_angle_j_to_i

Dyn_Attributes/max_angle_i_to_j

Flags

Type: Float in range [0; +∞] | Default: 90 | Mandatory: False | Unique: False

Short description:

Panel’s max opening angle from i to j [deg]

⚠ This parameter is incompatible with Dyn_Attributes parameters: max_distance_i_to_j, max_distance_j_to_i

Dyn_Attributes/max_angle_j_to_i

Flags

Type: Float in range [0; +∞] | Default: 90 | Mandatory: False | Unique: False

Short description:

Panel’s max opening angle from j to i [deg]

⚠ This parameter is incompatible with Dyn_Attributes parameters: max_distance_i_to_j, max_distance_j_to_i

Dyn_Attributes/prestress

Flags

Type: Float in range [-∞; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s hinge prestress if axis<2: [N*m] or [lbf*in]; else: [N] or [lbf]

Dyn_Attributes/stiffness

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s hinge stiffness if axis<2: [N*m/rad] or [lbf*in/rad]; else: [N/m] or [lbf/in]

Dyn_Attributes/damping

Flags

Type: Float in range [0; +∞] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s hinge damping if axis<2: [N*m/(rad/sec)] or [lbf*in/(rad/sec)]; else: [N/(m/sec)] or [lbf/(in/sec)]

Dyn_Attributes/cp_sin_theta

Flags

Type: Float in range [0; 1] | Default: 0 | Mandatory: False | Unique: False

Short description:

Panel’s variable discharge coefficient [no units]

cp_sin_theta allows the user to set up a variable discharge coefficient, as presented [DS10] (page 497):

\[C_D(\theta)=C_{D0} + cp\_sin\_theta \times sin(\theta)\]

Where:

  • \(C_D(\theta)\): Variable discharge coefficient function of opening angle
  • \(C_{D0}\): Constant discharge coefficient defined in tab connections
  • cp_sin_theta: Variable discharge coefficient factor

Note

By default, cp_sin_theta is null, therefore, discarge coefficient is fixed and defined from the connections tab only.

Dyn_Attributes/nb_rotating_ext

Flags

Type: Int in range [0; 2] | Default: 0 | Mandatory: False | Unique: False

Short description:

Number of opened triangles to take into account [no units]

nb_rotating_ext is only used for rotating panels and defines the number of “triangles” to take into account for calculating the resulting opening area. For example, a regular door flush with floor and with a large gap with ceilings would clear one “triangle” at the top.

A door flush with floor and ceilings would have no “triangles” opened.

number of opened triangles for hinged door

Fig. 5.14 Influence of the number of opened triangles for opening area

Dyn_Attributes/following_pressure

Flags

Type: Int in range [0; 1] | Default: 1 | Mandatory: False | Unique: False

Short description:

Wether or not pressure is following the panel [no units]

following_pressure is only relevant for rotating panels.

  • following_pressure=1 (default and recommended): the pressure is “following” the item, behaving as a static pressure. This method is recommended by SAE in [SAE17].
  • following_pressure=0: the pressure remains “perpendicular to the initial item’s area”, behaving as a dynamic pressure. This method is recommended by Pagani & Carrera in [PC16].
Following pressure

Fig. 5.15 Following pressure vs. non-following pressure

Dyn_Attributes/opening_area_method

Flags

Type: Int in range [0; 1] | Default: 0 | Mandatory: False | Unique: False

Short description:

Method to caclulate the opening area as a function of opening angle [no units]

opening_area_method is only used for rotating panels and defines the method to calculate the opening area. The default is zero.

  • opening_area_method=0 (recommended method): the opening area (with exclusion of top and bottom triangles) is the rectangle defined by the distance “a” multiplied by the distance between the external edge of the panel and its frame. This is the recommended method for ESonix, and the method proposed bye SAE in [SAE17], and Daidzic and Simones in [DS10].
  • opening_area_method=1: the opening area (with exclusion of top and bottom triangles) is the projection of the opening area as defined with opening_area_method=0 onto the frame’s plan. This is the method proposed by Pagani & Carrera in [PC16].
Calculation methods for the opening area (rotating panels only)

Fig. 5.16 Calculation methods for the opening area (rotating panels only)

5.7. tab “Tweaks”

This tab is optional.

On-the-fly tweaking. As of Version 3, the Tweaks tab allows ESonix to change any numeric value of the model on a load-case basis.

One row in the Tweaks tab will modify one value in the model. To reference this value, one needs to indicate which tab of the ESonix model is modified (i.e. one of the Volumes, Connections or Dyn_Attributes), and within this tab, wich row and which columns are concerned. This is adressed by filling respectively tweaked_id and parameter values from the tweak row.

Parameters

Table 5.13 Tweaks parameters
  description default units
id Tweak ID mandatory no units
lcid Load Case ID mandatory no units
tab Load Case ID mandatory no units
tweaked_id Tweaked ID mandatory no units
parameter Parameter to tweak mandatory no units
value New parameter value mandatory no units

Tweaks/id

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

Tweak ID [no units]

The id identifies the tweak. It shall be unique throughout the Tweaks tab.

Tweaks/lcid

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Load Case ID [no units]

The lcid parameter is the load case ID whose model will be tweaked. It needs to refer to existing Load case ID, defined in the tab “Load_Cases” tab, id parameter.

Tweaks/tab

Flags

Type: Str | Default: None | Mandatory: True | Unique: False

Short description:

Load Case ID [no units]

tab is the name of the tweaked (or modified) tab and shall be one of {“Volumes”, “Connections”, “Dyn_Attributes”}.

Tweaks/tweaked_id

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Tweaked ID [no units]

The ID of the value to be changed. This ID must exists in the tab defined by tab parameter.

Tweaks/parameter

Flags

Type: Str | Default: None | Mandatory: True | Unique: False

Short description:

Parameter to tweak [no units]

The Parameter (or Column) to be modified by the tweaks. It needs to exist in the tab described by the tab parameter.

Tweaks/value

Flags

Type: Float in range [-∞; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

New parameter value [no units]

The new value that the ESonix model will features for the given tab/tweaked_id row and parameter column.

5.8. tab “Cd_Dyns”

This tab is optional.

User-defined Discharge Coefficients

Parameters

Table 5.14 Cd Dyns parameters
  description default units
id cddyn value row ID mandatory no units
curve_id cddyn value row ID mandatory no units
ratio Ratio mandatory no units
base 0: pressure ratio; 1: massflow ratio 0 no units
discharge_coeff Discharge Coefficient at given Pressure ratio mandatory no units
interp_degree interpolation degree 0 no units

Cd_Dyns/id

Flags

Type: Int in range [1; +∞] | Default: None | Mandatory: True | Unique: True

Short description:

cddyn value row ID [no units]

Cd_Dyns/curve_id

Flags

Type: Int in range [10; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

cddyn value row ID [no units]

Cd_Dyns/ratio

Flags

Type: Float in range [0; 1] | Default: None | Mandatory: True | Unique: True

Short description:

Ratio [no units]

Cd_Dyns/base

Flags

Type: Int in range [0; 1] | Default: 0 | Mandatory: False | Unique: False

Short description:

0: pressure ratio; 1: massflow ratio [no units]

Cd_Dyns/discharge_coeff

Flags

Type: Float in range [0; +∞] | Default: None | Mandatory: True | Unique: False

Short description:

Discharge Coefficient at given Pressure ratio [no units]

Cd_Dyns/interp_degree

Flags

Type: Int in range [0; 10] | Default: 0 | Mandatory: False | Unique: False

Short description:

interpolation degree [no units]