.. index:: connections preprocessing .. _connections_preprocessing: Preprocessing ------------- Right before the actual run is solved, the model the user uploaded is preprocessed. 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. .. index:: initialisation Step 1: Initialisation """""""""""""""""""""" :term:`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``. .. index:: symmetrization Step 2: Symmetrization """""""""""""""""""""" :term:`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. .. _connections_examples: Common examples --------------- The following examples show the most common connections and propose the best way to idealize them. .. index:: double: decompression feature; passive venting (symmetric) Passive vent """""""""""" Passive vents are the most simple connections. Passive vents are always symmetrical (although you may define unsymmetrical venting area). .. _passive_vent: .. figure:: fig/sketch_passive_vent.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot 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 :numref:`passive_vent`. 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:: 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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ .. index:: double: decompression feature; decompression panel (symmetric) 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. .. _simple_decomp_panel: .. figure:: fig/sketch_decomp_panel_01.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot 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 :numref:`simple_decomp_panel`. 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:: 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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ .. index:: double: decompression feature; decompression panel (non-symmetric) Unidirectional decompression panel """""""""""""""""""""""""""""""""" Unidirectional decompression panels are activated only for one direction .. _blind_decomp_panel: .. figure:: fig/sketch_decomp_panel_02.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot 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 :numref:`blind_decomp_panel`. 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:: 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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ | ``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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ .. note:: another way of achieving a unidirectional decompression panel opening would be to set an artificially high opening pressure in the opposite direction. .. index:: double: decompression feature; decompression panel (non-symmetric) Nested differential decompression panel """""""""""""""""""""""""""""""""""""""" This particular design is sometimes useful to optimize a decompression layout. .. _nested_panel: .. figure:: fig/sketch_decomp_panel_03.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot Nested differential Decompression panel between volumes 2 and 7 Example. As shown in :numref:`nested_panel`, 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:: 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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ .. index:: double: decompression feature; door (symmetric) Simple non-decompressing door """"""""""""""""""""""""""""""""""""" A non-decompressing :term:`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``!) .. _non_decompressing_door: .. figure:: fig/sketch_simple_non_decomp_door.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot Simple non-decompressing door between volumes 2 and 7 Example: A simple 2.2m² door (let say ID9) connects compartments 2 and 7 (cf. :numref:`non_decompressing_door`). 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:: 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** | | | | | | | | | | | +-----------------------------+------------+----------------------------------------+--------------+ .. index:: double: decompression feature; door (non-symmetric) .. _simple_decompression_door_example: Simple decompressing door """"""""""""""""""""""""""""" A decompressing :term:`door` is considered to clear its full frame area when the :math:`\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. .. _decompressing_door: .. figure:: fig/sketch_simple_decomp_door.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot 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 :math:`\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:: 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 (:ref:`simple-decompressing-door`), the door has no decompression mechanism, but hosts a nested decompression panel (cf. :numref:`door_with_nested_panel`). 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 :term:`symmetrization` (at least for the ``vent_area``), as shown in :numref:`door_with_nested_panel_table`). .. _door_with_nested_panel: .. figure:: fig/sketch_door_with_panel.png :width: 400pt :align: center :alt: Create a project :figclass: align-center :class: screenshot 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! .. _door_with_nested_panel_table: .. table:: 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** | | | | | | +-----------------------------+------------+----------------------------------------+--------------+