===================== ESonix Run Parameters ===================== Regular Runs ============ The Regular Run Parameters are defined in three different places: 1. In the project settings (cf. :ref:`create_project_phase`). 2. In the new run form (cf. :ref:`create_regular_runs`). 3. In a batch command file (*cf*. :ref:`batch_analysis`). The screen shots shown hereunder are visible from the "new project " form, but the "new run" forms are almost the same. The parameters shown by default in the new run form inherit from the one defined in the project form. .. _params_model_parameters: Model Parameters """""""""""""""" .. _params_units: Units ''''' ``units``: Set of units in which the model and analysis results are given. SI (modified with bar instead of Pa) or Imperial. .. figure:: fig/params/units.png :align: center :alt: Units Selection Combo Box :figclass: align-center :class: screenshot Units selection Combo Box .. topic:: Batch Equivalence: ``unit_im`` ``unit_im`` accepts a boolean (`True` or `False`) value. specify `True` for an imperial units model: .. code-block:: python unit_im = True or `False` for a SI (bar instead of Pa) model: .. code-block:: python unit_im = False .. _params_doors_position: Doors Position '''''''''''''' ``doors position``: Set the initial position (:term:`configuration`) of the door to be used in the analysis. .. figure:: fig/params/doors_position.png :align: center :alt: Units Selection Combo Box :figclass: align-center :class: screenshot Doors Position selection Combo Box .. topic:: Batch Equivalence: ``doors`` ``doors`` accepts one of the strings: ``"open"``, ``"close"`` or ``"both"``. Example: .. code-block:: python doors = "close" # to run only closed doors aircraft configuration .. _params_load_cases_to_run: Load Cases to run ''''''''''''''''' ``load cases to run``: Comma separated list of load cases ID to run. This is useful to restrict calculations to a single or a subset of load cases as defined in the model spreadsheet. If blank, all load cases will be considered in the run. .. figure:: fig/params/load_cases_to_run.png :align: center :alt: Units Selection Combo Box :figclass: align-center :class: screenshot Load Cases to Run Text Box .. topic:: Batch Equivalence: ``lcs`` ``lcs`` accepts: * empty (``lcs =``) * None (``lcs = None``) * a valid python list of integers (``lcs = [1, 3, 5]``) Example: .. code-block:: python lcs = None # Run all the load cases or: .. code-block:: python lcs = [1, 5, 3] # Run load cases 1, 3 and 5 .. _params_sub-modelling_zone: Sub-modelling Zone '''''''''''''''''' ``sub-modelling zone``: Set specific part of the model to be run. This is useful to restrict calculations to a single or a subset of model as defined in the model spreadsheet. If blank, the full model will be run. .. figure:: fig/params/sub-modelling_zone.png :align: center :alt: Units Selection Combo Box :figclass: align-center :class: screenshot Sub-modelling Zone Combo Box .. topic:: Batch Equivalence: ``submodel`` ``submodel`` needs and integer (default to 0). If set to `0`, then the whole model is analized. If set to 1, only the first :term:`neighbors ` zone. If set to `2`, two rows of neighbours are accounted, *etc*. Example: .. code-block:: python submodel = 0 # Run the whole model or: .. code-block:: python submodel = 1 # Run the first "row" of neighbors. .. _params_runtime_parameters: Runtime Parameters """""""""""""""""""" .. _params_engine: Engine '''''' ``engine``: Thermodynamical engine to use .. figure:: fig/params/engine.png :align: center :alt: Engine Selection Combo Box :figclass: align-center :class: screenshot Engine Selection Combo Box .. topic:: Batch Equivalence: ``engine`` ``engine`` accepts one of the following strings: * ``"isentropic"``: equivalent to the "isentropic" selection in the combo box. * ``"isentropic_cddyn"``: equivalent to the "isentropic + dynamical CD" selection in the combo box. * ``"polytropic"``: equivalent to the "polytropic" selection in the combo box. * ``"polytropic_cddyn"``: equivalent to the "polytropic + dynamical CD" selection in the combo box. Example: .. code-block:: python engine = "isentropic_cddyn" # "isentropic + dynamical CD" engine .. _params_timestep: Timestep '''''''' ``timestep``: Simulation time increment. .. figure:: fig/params/timestep.png :align: center :alt: Timestep text box :figclass: align-center :class: screenshot Timestep Text Box .. topic:: Batch Equivalence: ``timestep`` ``timestep`` accepts a float defining the time step to use. Example: .. code-block:: python timestep = 1e-5 # Time step = 0.00001 .. _params_sampling: Sampling '''''''' .. figure:: fig/params/sampling.png :align: center :alt: Sampling Text Box :figclass: align-center :class: screenshot Sampling Text Box ``sampling``: Data sampling for disk storage. .. topic:: Batch Equivalence: ``sampling`` ``sampling`` accepts a float defining the sampling to use. Example: .. code-block:: python sampling = 1e-4 # sampling = 0.0001 .. _params_write_data_on_event: Write Data on Event ''''''''''''''''''' ``Write data on event``: When set to `True`, runtime records are written when an event occur. Should be let to `True` except to check compatibility with V2 results. .. figure:: fig/params/write_data_on_event.png :align: center :alt: Write Data on Event Check Box :figclass: align-center :class: screenshot Write Data on Event Check Box .. topic:: Batch Equivalence: ``write_on_event`` ``write_on_event`` accepts a boolean value (``True`` or ``False``) Example: .. code-block:: python write_on_event = True .. _params_timeout: timeout ''''''' ``timeout``: Simulation maximum time. If no other convergence criteria is met before, `timeout` stop the run. .. figure:: fig/params/timeout.png :align: center :alt: Timeout Text Box :figclass: align-center :class: screenshot Timeout Text Box .. topic:: Batch Equivalence: ``timeout`` ``timeout`` accepts a float defining the simulation timeout. Example: .. code-block:: python # Simulation will stop after 1.4s if no convergence is found: timeout = 1.4 .. _params_convergence_criteria: convergence criteria '''''''''''''''''''' ``convergence criteria``: How to calculate convergence. This is a low-influence parameter as most of the time, ``timeout`` will end the calculation before the real convergence is reached. As for now, three convergence criteria exist: * "``H``": simulation stops once all differential pressure decrease. * "``first_conv``": simulation stops once one volume reach ambient pressure. * "``timeout``": simulation stops at timeout. .. figure:: fig/params/convergence_criteria.png :align: center :alt: Convergence Criteria Combo Box :figclass: align-center :class: screenshot Convergence Criteria Combo Box .. topic:: Batch Equivalence: ``convergence_criteria`` ``convergence_criteria`` accepts one of "``H``", "``fisrt_conv``" or "``timeout``" strings. Example: .. code-block:: python # Simulation will stop once all differential pressure decrease or after timeout no convergence is found: convergence_criteria = "H" .. _params_post-convergence_margin: Post-Convergence margin ''''''''''''''''''''''' ``post-convergence margin``: Margin (in nb of steps) after convergence is reached before stopping calculation. .. figure:: fig/params/post-convergence_margin.png :align: center :alt: Post Convergence Margin Text Box :figclass: align-center :class: screenshot Post Convergence Margin Text Box .. topic:: Batch Equivalence: ``pct_margin`` ``pct_margin`` accepts a float. Example: .. code-block:: python # simulation will run additional 5% of elapsed time # once convergence is met: pct_margin = 5 .. _params_runtime_advanced_parameters: Runtime Advanced Parameters """""""""""""""""""""""""""" .. _params_adaptive_strategy: adaptive strategy ''''''''''''''''' ``adaptive strategy``: Adaptive strategy to adopt for the run. The adaptive strategy is based on the :term:`courant number` analysis. The proposed strategies are: - "**no adaptive timestep**": legacy behavior, timestep is constant during the run. - "**Courant Number flow control, no adaptive sampling**": Time step is dynamically adjusted during the run to match the ``adaptive strategy Max Co target``. Sampling is as defined un ``Runtime`` tab. - "**Courant Number flow control, time step on sampling cst ratio**": Time step is dynamically adjusted during the run to match the ``adaptive strategy Max Co target``. Sampling is adjusted to keep constant the :math:`{time\ step} / sampling` ratio. .. figure:: fig/params/adaptive_strategy.png :align: center :alt: Adaptive Strategy Selection Combo Box :figclass: align-center :class: screenshot Adaptive Strategy Selection Combo Box .. topic:: Batch Equivalence: ``adaptive`` ``adaptive`` accepts an integer as per: * ``0``: equivalent to "**no adaptive timestep**" * ``1``: equivalent to "**Courant Number flow control, no adaptive sampling**" * ``2``: equivalent to "**Courant Number flow control, time step on sampling cst ratio**" Example: .. code-block:: python # adaptive time step, keeping initial timestep/sampling ratio: adaptive = 2 .. _params_adaptive_strategy_max_co_target: adaptive strategy max co target ''''''''''''''''''''''''''''''' ``adaptive strategy max co target``: Maximum Courant number allowed for an adaptive run. Defaulted to 1E-4. This target may be decreased for simple analysis. Decreasing the Courant Number target leads to more accurate yet more expensive runs. .. figure:: fig/params/adaptive_strategy_max_co_target.png :align: center :alt: Adaptive Strategy Max CO Target Text Box :figclass: align-center :class: screenshot Adaptive Strategy Max CO Target Text Box .. topic:: Batch Equivalence: ``adaptive_maxco`` ``adaptive_maxco`` accepts a float. Example: .. code-block:: python # adaptive max CO Target is set to 1e-5 adaptive_maxco = 1e-5 .. _params_adaptive_strategy_neighborhood_zone: adaptive strategy neighborhood zone ''''''''''''''''''''''''''''''''''' ``adaptive strategy neighborhood zone``: Defines the :term:`neighborhood zone ` where Courant Number Criteria is checked. The greater this number, the more accurate yet expansive the calculation is. More details :ref:`here `. .. figure:: fig/params/adaptive_strategy_neighborhood_zone.png :align: center :alt: Adaptive Strategy Neighborhood Zone Text Box :figclass: align-center :class: screenshot Adaptive Strategy Neighborhood Zone Text Box .. topic:: Batch Equivalence: ``adaptive_zone`` ``adaptive_zone`` accepts an integer. Example: .. code-block:: python # Check Courant number for one zone around the exploded volume adaptive_zone = 1 .. _params_adaptive_strategy_max_co_ramp: adaptive strategy max co ramp ''''''''''''''''''''''''''''' ``adaptive strategy max co ramp``: Defines how fast ESonix will reach the Courant Number Target. Use it for debugging only, as an incorrect number could lead to unstable results. .. figure:: fig/params/adaptive_strategy_max_co_ramp.png :align: center :alt: Adaptive Strategy Max CO Ramp Text Box :figclass: align-center :class: screenshot Adaptive Strategy Max CO Ramp Text Box .. topic:: Batch Equivalence: ``adaptive_ramp`` ``adaptive_ramp`` accepts a float<1. Example: .. code-block:: python adaptive_ramp = 0.1 .. _params_default_opening_latency: default opening latency ''''''''''''''''''''''' ``default opening latency``: Set a default latency for all opening feature. .. figure:: fig/params/default_opening_latency.png :align: center :alt: Default Opening Latency Text Box :figclass: align-center :class: screenshot Default Opening Latency Text Box .. topic:: Batch Equivalence: ``set_default_latency`` ``set_default_latency`` accepts a float. Example: .. code-block:: python # set all the items to wait for 0.01sec before opening set_default_latency = 0.01 .. _params_raw_merging: raw merging ''''''''''' ``raw merging``: Defaulted to `False`. When set to True (not advised), use the legacy behavior (V1) for :term:`merged load cases ` post-processing. .. figure:: fig/params/raw_merging.png :align: center :alt: Raw Merging Check Box :figclass: align-center :class: screenshot Raw Merging Check Box .. topic:: Batch Equivalence: ``raw_merging`` ``raw_merging`` accepts a boolean value (``True`` or ``False``). Example: .. code-block:: python raw_merging = False .. _params_combination_runs: Combination Runs ================ Reference Node & "Nodes to combine" """"""""""""""""""""""""""""""""""" ``Reference Node``: Base node for combination. This node will keep it sown load cases numbering as it. ``Nodes to combine``: Selectable list of nodes to combine to ``Reference Node``. If some of their load cases ID are common, the load-cases are mapped to available IDs. .. figure:: fig/params/combination.png :align: center :alt: Combination Box :figclass: align-center :class: screenshot Combination Analysis Box .. topic:: Batch Equivalence: ``nodes`` ``nodes`` accepts a list of nodes to combine. The first node of the series will become the "reference node". The ``nodes`` parameter therefore combine "Reference Node" and "Nodes to combine" into a single parameter. Example: .. code-block:: python # node A4 is the reference; A2 and A5 are combined with nodes = [4, 2, 5] .. _params_sensitivity_runs: Sensitivity Runs ================ ``Sensitivity``: build a single set of results comparing results between existing nodes or between nodes ("reference" and/or "nodes to combine") and a external file. "Reference Node" & "Nodes to combine" """"""""""""""""""""""""""""""""""""" ``Reference Node``: Base node for sensitivity. This will be the first one on the bar plots. ``Nodes to combine``: Selectable list of nodes to compare. .. figure:: fig/params/sensitivity.png :align: center :alt: Sensitivity Box :figclass: align-center :class: screenshot Sensitivity Analysis Box .. topic:: Batch Equivalence: ``nodes`` ``nodes`` accepts a list of nodes to compare. The first node of the series will become the "reference node". The ``nodes`` parameter therefore compare "Reference Node" and "Nodes to combine" into a single parameter. Example: .. code-block:: python # node A1 is the reference; A2 and A4 are compared with nodes = [1, 2, 4] .. _external_reference_file: "External reference file" """""""""""""""""""""""""" .. figure:: fig/params/sensitivity_external.png :align: center :alt: Sensitivity Box :figclass: align-center :class: screenshot Sensitivity Analysis Box - External reference The "External reference file" should be written in accordance to the following template: .. figure:: fig/params/Sensitivity_ExternalFile_Template.png :align: center :alt: Sensitivity Template :figclass: align-center :class: screenshot Sensitivity External File - Template 1. ``vol_i`` : volume identification (as per Esonix Model). Mandatory column with mandatory title. 2. ``vol_j`` : volume identification (as per Esonix Model). Mandatory column with mandatory title. 3. ``absmax_t`` : time when the maximum deltaP occurs. Mandatory column with mandatory title. Empty cells are accepted. 4. ``absmax_v`` : maximum deltaP. Negative values are accepted. Mandatory column with mandatory title. 5. Each sheet must be used for only **one** Load Case, which must be identified as per Esonix standard numeration ``LCXXXX``. .. topic:: Batch Equivalence: ``external_reference`` ``external_reference`` accepts the external file name. The sensitivity will then compare the pre-defined ``nodes`` with the ``external_reference file`` into a single parameter. Example: .. code-block:: python external_reference = "External_data.xlsx" To go deeper ============ - For adaptive strategies: check :ref:`adaptive_runtime_parameters`. - For more information about merged load cases, refer to :ref:`merged_load_cases`.