{"id":345,"date":"2023-09-10T16:19:16","date_gmt":"2023-09-10T16:19:16","guid":{"rendered":"https:\/\/www.fseitalia.it\/blog\/?p=345"},"modified":"2023-09-10T16:19:35","modified_gmt":"2023-09-10T16:19:35","slug":"fire-dynamics-simulator-unaltra-occhiata-al-codice-sorgente","status":"publish","type":"post","link":"https:\/\/www.fseitalia.it\/blog\/index.php\/2023\/09\/10\/fire-dynamics-simulator-unaltra-occhiata-al-codice-sorgente\/","title":{"rendered":"Fire Dynamics Simulator: un&#8217;altra occhiata al codice sorgente"},"content":{"rendered":"\n<p><em>DISCLAIMER<\/em>:<\/p>\n\n\n\n<p><strong>Questa spiegazione che stiamo affrontando sul codice sorgente di FDS non ha una rilevanza sulle capacit\u00e0 professionali del professionista antincendio, perch\u00e9 non \u00e8 compito suo cercare di entrare nell\u2019analisi del codice. Questo software \u00e8 stato sviluppato dalla comunit\u00e0 scientifica del NIST ed \u00e8 riconosciuto come uno dei software pi\u00f9 importanti in ambito antincendio. Conoscere il funzionamento del software, tuttavia non \u00e8 un incentivo a manometterlo. Qualsiasi manomissione del codice sorgente porterebbe con ogni probabilit\u00e0 ad invalidare i risultati scientifici e quindi non potrebbe essere considerata valida una simulazione con il software manomesso.<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Come abbiamo detto<em> nell\u2019articolo precedente<\/em>, il codice sorgente di <strong>FDS <\/strong>\u00e8 stato scritto in <strong><a href=\"https:\/\/it.wikipedia.org\/wiki\/Fortran\" target=\"_blank\" rel=\"noreferrer noopener\">FORTRAN90<\/a><\/strong>. Questo linguaggio \u00e8 stato inventato nella met\u00e0 degli anni 50 del secolo scorso da un gruppo di matematici e informatici guidati da <a rel=\"noreferrer noopener\" href=\"https:\/\/it.wikipedia.org\/wiki\/John_Backus\" target=\"_blank\">John Backus<\/a>. <strong>FORTRAN <\/strong>fu il primo linguaggio ad <strong>ALTO LIVELLO<\/strong> ovvero con dei comandi scritti per essere pi\u00f9 comprensibili dagli esseri umani tant\u2019\u00e8 che se diamo un occhiata al codice noteremo delle parole (istruzioni) che hanno un significato anche nella lingua scritta: parliamo dell\u2019inglese ovviamente.<\/p>\n\n\n\n<p>I calcoli in FDS vengono fatti per lo pi\u00f9 tramite dei cicli (<strong>LOOP<\/strong>) che iniziano per esempio:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>PRESSURE_ITERATION_LOOP: DO<\/code><\/pre>\n\n\n\n<p>\u00a0   \u2026 Esecuzione dei calcoli<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IF (.NOT. ITERATE_PRESSURE) EXIT PRESSURE_ITERATION_LOOP \/\/<\/code><\/pre>\n\n\n\n<p>   Quando si verifica una determinata condizione il ciclo si interrompe!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ENDDO PRESSURE_ITERATION_LOOP<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<p>Questo esempio \u00e8 un ciclo di iterazione per calcolare la pressione dell\u2019aria in una simulazione d\u2019incendio e lo troviamo nel file &#8220;<strong>main.f90\u201d<\/strong> alla riga <strong>1414 <\/strong>e termina alla riga <strong>1530<\/strong>, mentre una delle condizioni affinch\u00e9 il programma esca dal ciclo si trova alla riga <strong>1473<\/strong>. Il ciclo espone delle chiamate a delle <strong>SUBROUTINE <\/strong>che possono anche trovarsi in uno degli altri <strong>31 <\/strong>file in <strong>FORTRAN <\/strong>del codice sorgente.<\/p>\n\n\n\n<p>Le grandezze fisiche, una volta calcolate vengono esposte dentro dei file che il compilatore <strong>FORTRAN <\/strong>li scrive in formato binario. Il fatto di scrivere in forma binaria \u00e8 dovuto essenzialmente a questioni di performance e di accuratezza, quindi <strong>FDS <\/strong>riesce a fare calcoli molto complessi e molto velocemente, e la fase di scrittura contribuisce a mantenere alte le prestazioni in termini di velocit\u00e0 di esecuzione di calcoli.<\/p>\n\n\n\n<p>Anche se <strong>FDS <\/strong>pu\u00f2 impiegare giorni a calcolare una simulazione di scenario d\u2019incendio di progetto, bisogna tenere conto della complessit\u00e0 dei calcoli e di quanto questi vengono eseguiti per ogni cella in cui e suddiviso lo scenario e molte volte l\u2019ordine di grandezza del numero di celle \u00e8 intorno al milione.<\/p>\n\n\n\n<p>Il file <strong>\u201cdump.f90\u201d<\/strong> contiene tutte le <strong>SUBROUTINE <\/strong>per scrivere i file, per esempio alla riga <strong>2479 <\/strong>troviamo un frammento di codice che scrive in un file i dati ottenuti.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"891\" height=\"182\" src=\"https:\/\/www.fseitalia.it\/blog\/wp-content\/uploads\/2023\/09\/frammento_fortran90.jpg\" alt=\"\" class=\"wp-image-346\" srcset=\"https:\/\/www.fseitalia.it\/blog\/wp-content\/uploads\/2023\/09\/frammento_fortran90.jpg 891w, https:\/\/www.fseitalia.it\/blog\/wp-content\/uploads\/2023\/09\/frammento_fortran90-300x61.jpg 300w, https:\/\/www.fseitalia.it\/blog\/wp-content\/uploads\/2023\/09\/frammento_fortran90-768x157.jpg 768w\" sizes=\"auto, (max-width: 891px) 100vw, 891px\" \/><\/figure>\n\n\n\n<p>Questo file \u00e8 uno dei pochi che vengono scritti in formato <strong>ASCII<\/strong>, ovvero in caratteri leggibili e il file in questione \u00e8 il file<strong> \u201cnome_progetto.out\u201d<\/strong><\/p>\n\n\n\n<p>Un file<strong> &#8220;.out&#8221;<\/strong> tipico generato da FDS fornisce una serie di informazioni chiave sulla simulazione. Questi dati includono la data corrente, la revisione del software, il numero di processi <strong>MPI <\/strong>coinvolti, la presenza di <strong>OpenMP <\/strong>e le informazioni sulla libreria MPI utilizzata.<\/p>\n\n\n\n<p>Inoltre, il file fornisce dettagli sulla griglia, come le dimensioni in direzione <strong>X, Y<\/strong> e<strong> Z<\/strong>, cos\u00ec come le dimensioni fisiche della simulazione. Questi dati sono fondamentali per comprendere la configurazione della simulazione e possono essere cruciali per una corretta interpretazione dei risultati.<\/p>\n\n\n\n<p><strong>Ecco un esempio del contenuto di un file \u201c.out\u201d:<\/strong><strong><\/strong><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p style=\"font-size:12px\">\u00a0Current Date\u00a0\u00a0\u00a0\u00a0 : April 14, 2023\u00a0 10:18:10<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Revision&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : FDS6.7.9-0-gec52dee42-release<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Revision Date&nbsp;&nbsp;&nbsp; : Sun Jun 26 14:36:40 2022 -0400<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Compiler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Compilation Date : Tue 06\/28\/2022&nbsp; 11:11 PM<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;MPI Enabled;&nbsp;&nbsp;&nbsp; Number of MPI Processes:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;OpenMP Disabled<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;MPI version: 3.1<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;MPI library version: Intel(R) MPI Library 2021.6 for Windows* OS<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Job TITLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Job ID string&nbsp;&nbsp;&nbsp; : nome_progetto<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Grid Dimensions, Mesh&nbsp;&nbsp;&nbsp;&nbsp; 1<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Cells in the X Direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Cells in the Y Direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Cells in the Z Direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Number of Grid Cells&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40920<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Physical Dimensions, Mesh&nbsp;&nbsp;&nbsp;&nbsp; 1<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Length (m)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.000<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Width&nbsp; (m)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8.250<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Height (m)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.750<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Initial Time Step (s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.094<\/p>\n\n\n\n<p style=\"font-size:12px\">\u2026.<\/p>\n\n\n\n<p style=\"font-size:12px\">Miscellaneous Parameters<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Simulation Start Time (s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Simulation End Time (s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1400.0<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Background Pressure (Pa)&nbsp;&nbsp;&nbsp;&nbsp; 101325.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Ambient Temperature (C)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; 3D Cartesian<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; VLES Calculation<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Eddy Viscosity: Deardorff Model (C_DEARDORFF = 0.10)<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Surface INERT Eddy Viscosity: WALE Model (C_WALE = 0.60)<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Surface BURNER Eddy Viscosity: WALE Model (C_WALE = 0.60)<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Surface WARKSTATION Eddy Viscosity: WALE Model (C_WALE = 0.60)<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Turbulent Prandtl Number:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.50<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; Turbulent Schmidt Number:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.50<\/p>\n\n\n\n<p style=\"font-size:12px\">\u2026<\/p>\n\n\n\n<p style=\"font-size:12px\">Background Stratification<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Z (m)&nbsp;&nbsp;&nbsp;&nbsp; P_0 (Pa)&nbsp;&nbsp;&nbsp; TMP_0 (C)<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.12&nbsp;&nbsp;&nbsp; 101241.46&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.88&nbsp;&nbsp;&nbsp; 101244.41&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.62&nbsp;&nbsp;&nbsp; 101247.32&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.38&nbsp;&nbsp;&nbsp; 101250.27&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.12&nbsp;&nbsp;&nbsp; 101253.18&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.88&nbsp;&nbsp;&nbsp; 101256.14&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.62&nbsp;&nbsp;&nbsp; 101259.05&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.38&nbsp;&nbsp;&nbsp; 101261.96&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.12&nbsp;&nbsp;&nbsp; 101264.91&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.88&nbsp;&nbsp;&nbsp; 101267.82&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.62&nbsp;&nbsp;&nbsp; 101270.77&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.38&nbsp;&nbsp;&nbsp; 101273.68&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.12&nbsp;&nbsp;&nbsp; 101276.64&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.88&nbsp;&nbsp;&nbsp; 101279.55&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.62&nbsp;&nbsp;&nbsp; 101282.46&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.38&nbsp;&nbsp;&nbsp; 101285.41&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.12&nbsp;&nbsp;&nbsp; 101288.32&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.88&nbsp;&nbsp;&nbsp; 101291.28&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.62&nbsp;&nbsp;&nbsp; 101294.19&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.38&nbsp;&nbsp;&nbsp; 101297.14&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.12&nbsp;&nbsp;&nbsp; 101300.05&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.88&nbsp;&nbsp;&nbsp; 101302.97&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.62&nbsp;&nbsp;&nbsp; 101305.92&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.38&nbsp;&nbsp;&nbsp; 101308.83&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.12&nbsp;&nbsp;&nbsp; 101311.78&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.88&nbsp;&nbsp;&nbsp; 101314.70&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.62&nbsp;&nbsp;&nbsp; 101317.65&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.38&nbsp;&nbsp;&nbsp; 101320.56&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.12&nbsp;&nbsp;&nbsp; 101323.48&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -0.12&nbsp;&nbsp;&nbsp; 101326.43&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -0.38&nbsp;&nbsp;&nbsp; 101329.34&nbsp;&nbsp;&nbsp;&nbsp; 20.00<\/p>\n\n\n\n<p style=\"font-size:12px\">\u2026termine del file<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Time Stepping Wall Clock Time (s):&nbsp;&nbsp;&nbsp; 31589.304<\/p>\n\n\n\n<p style=\"font-size:12px\">&nbsp;Total Elapsed Wall Clock Time (s):&nbsp;&nbsp;&nbsp; 31605.884<\/p>\n\n\n\n<p style=\"font-size:12px\">STOP: FDS completed successfully (CHID: nome_progetto)<\/p>\n<\/div><\/div>\n\n\n\n<p><strong>Inizializzazione del file di output diagnostico<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IF (APPEND) THEN INQUIRE(FILE=FN_OUTPUT,EXIST=EX) IF (EX) OPEN(LU_OUTPUT,FILE=FN_OUTPUT,FORM='FORMATTED',STATUS='OLD',POSITION='APPEND') ELSE OPEN(LU_OUTPUT,FILE=FN_OUTPUT,FORM='FORMATTED',STATUS='REPLACE') ENDIF<\/code><\/pre>\n\n\n\n<p>Questo codice gestisce l&#8217;apertura del file di output diagnostico in base alla modalit\u00e0 di esecuzione. Se la modalit\u00e0 \u00e8 impostata su &#8220;<strong>APPEND<\/strong>,&#8221; il programma verifica se il file esiste gi\u00e0. In caso affermativo, il file viene aperto in modalit\u00e0 &#8220;APPEND,&#8221; consentendo di aggiungere ulteriori dati. In caso contrario, se la modalit\u00e0 <em>non \u00e8<\/em> &#8220;APPEND,&#8221; il file viene aperto in modalit\u00e0 &#8220;<strong>REPLACE<\/strong>,&#8221; sovrascrivendo i dati esistenti.<\/p>\n\n\n\n<p><em>In questo articolo<\/em>, abbiamo esaminato ulteriormente il codice sorgente di <strong>Fire Dynamics Simulator<\/strong> ed esplorato come vengono gestiti i dati di output diagnostico. Questo software \u00e8 fondamentale per la prevenzione e la comprensione degli incendi, e il suo codice sorgente rivela la complessit\u00e0 e l&#8217;efficienza dei calcoli che sono alla base delle simulazioni antincendio.<\/p>\n\n\n\n<p><em>Nel prossimo articolo<\/em>, approfondiremo come <strong>FDS legge i dati di input <\/strong>per avviare le simulazioni degli scenari d&#8217;incendio di progetto.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DISCLAIMER: Questa spiegazione che stiamo affrontando sul codice sorgente di FDS non ha una rilevanza sulle capacit\u00e0 professionali del professionista antincendio, perch\u00e9 non \u00e8 compito suo cercare di entrare nell\u2019analisi del codice. Questo software \u00e8 stato sviluppato dalla comunit\u00e0 scientifica del NIST ed \u00e8 riconosciuto come uno dei software pi\u00f9 importanti in ambito antincendio. Conoscere&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/www.fseitalia.it\/blog\/index.php\/2023\/09\/10\/fire-dynamics-simulator-unaltra-occhiata-al-codice-sorgente\/\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":347,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-rules"],"_links":{"self":[{"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=345"}],"version-history":[{"count":2,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions"}],"predecessor-version":[{"id":349,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions\/349"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/media\/347"}],"wp:attachment":[{"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fseitalia.it\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}