OpenFOAM 14 — Guida 17: Particelle disperse e interazione con le pareti
OpenFOAM 14 — Guide 17: Dispersed particles and wall interaction
========================================================================

IT  Questo archivio contiene tutti gli script e i file di dati riportati o citati
    nell'articolo di giux-lab.it, con lo stesso contenuto pubblicato nei riquadri.
    scripts/, examples/, ... : file del pacchetto originale della guida;
    extra/                   : script e file aggiuntivi presentati nei riquadri di approfondimento.
    I file indicati come SYNTHETIC sono dati illustrativi, non risultati CFD.
EN  This archive contains every script and data file reproduced or cited in the
    giux-lab.it article, with the same content published in the boxes.
    scripts/, examples/, ... : files of the original guide package;
    extra/                   : additional scripts and files presented in the deep-dive boxes.
    Files marked SYNTHETIC are illustrative data, not CFD results.

IMPORTANTE: preparare i casi con extra/prepare_cases_fixed.py (stesse opzioni di scripts/prepare_cases.py):
lo script originale cambia solo constant/g, ma in OpenFOAM 14 i parcel risentono della gravita solo con
"gravity;" in particleForces; inoltre installa scripts/run_case.sh, che non parte in OpenFOAM 14 perche chiama foamVersion
(una funzione della shell interattiva, non un comando). prepare_cases_fixed.py installa extra/run_case_fixed.sh come run_case.sh.
Facoltativo, prima del calcolo: python3 extra/add_deposition_output.py <casi> per le mappe di deposizione e d'impatto.
Bilancio di massa: python3 extra/cloud_balance.py log.foamRun --case <nome>.

IMPORTANT: prepare the cases with extra/prepare_cases_fixed.py (same options as scripts/prepare_cases.py):
the original script changes only constant/g, but in OpenFOAM 14 parcels feel gravity only with
"gravity;" in particleForces; it also installs scripts/run_case.sh, which does not start in OpenFOAM 14 because it calls foamVersion
(a function of the interactive shell, not a command). prepare_cases_fixed.py installs extra/run_case_fixed.sh as run_case.sh.
Optional, before the run: python3 extra/add_deposition_output.py <cases> for deposition and impact maps.
Mass balance: python3 extra/cloud_balance.py log.foamRun --case <name>.

Requisiti / Requirements: OpenFOAM Foundation 14 on Linux; Python 3 (standard library) unless stated in the script.
Line endings: LF. Se si modificano gli script su Windows, salvarli con fine riga LF (Notepad++: Modifica > Conversione fine riga).
Licenza / Licence: script GNU GPL v3 or later (COPYING_GPLv3.txt). I tutorial OpenFOAM non sono inclusi:
gli script li copiano dall'installazione locale. / OpenFOAM tutorials are not bundled: the scripts copy them from the local installation.

Contenuto / Contents
------------------------------------------------------------------------
examples/example_synthetic_fates.csv
    SYNTHETIC fate table of the package (DEMO_ cases), not CFD results
extra/add_deposition_output.py
    Add wall-deposition and impact maps to NEW, never-run Guide 17 cases.
extra/ballistic_impact.py
    Single-particle ballistic estimate for the injectionChannel geometry (Guide 17).
extra/cloud_balance.py
    Particle mass balance of an OpenFOAM 14 cloud, read from the solver log (Guide 17).
extra/flux_balance.py
    Time-integrate the cloud mass-flow monitors of the injectionChannel case (Guide 17).
extra/make_synthetic_log.py
    Write a SYNTHETIC foamRun log for testing the Guide 17 parsers.
extra/particle_estimates.py
    Order-of-magnitude estimates for the OpenFOAM 14 injectionChannel particle case.
extra/plot_geometry.py
    Draw the injectionChannel geometry from system/blockMeshDict (Guide 17).
extra/prepare_cases_fixed.py
    corrected scripts/prepare_cases.py: same options; adds the gravity force in case C and installs the corrected run script
extra/run_case_fixed.sh
    corrected scripts/run_case.sh: same usage; reads WM_PROJECT_VERSION instead of the foamVersion shell function, checks Mesh OK and End
extra/synthetic_log_stick.txt
    SYNTHETIC foamRun log in the OpenFOAM 14 format (3 steps, written by make_synthetic_log.py), to test the parsers
scripts/collect_fates.py
    Extract the latest cumulative per-patch particle fate entries from a log.
scripts/compare_fates.py
    Compare particle wall-fate reports without inferring a closed mass balance.
scripts/prepare_cases.py
    Prepare independent OpenFOAM 14 particle-flow cases without overwriting files.
scripts/run_case.sh
    Run exactly one prepared case, with distinct logs and no automatic deletion.

SHA-256
------------------------------------------------------------------------
6bb2930762ded95f07367dcc394b1c16d3848ad5ee03ac12273f3ccef2af1a45  examples/example_synthetic_fates.csv
473ff0eed863d683d24603151a398b4b9b216c010410c6305c34e905a53913ca  extra/add_deposition_output.py
6540d6af5b2f7c383e0d536cdac1f1fc219cbb010031b382979f80c0c0e38f5e  extra/ballistic_impact.py
81496c3329857cb252b7e1cc51e24b4454fb7b36ff76c024c2704126d61bf99e  extra/cloud_balance.py
d2bced2d9b4593d75d88129329adccf4a79abf6fe407c4c798a2db5ae25da7dc  extra/flux_balance.py
29fe13c893b1d0965f56d10f7cfd6f91d724f301ad2de4f3a3387f6d4892a4ee  extra/make_synthetic_log.py
30a369c105af83d5f46c269a881de1fbf1a9927d4d9b00ffc0e376cb0670fa62  extra/particle_estimates.py
38ab4679c88cf29c447def6b61414b22cd216c59e679441bd3d035189b7d82b3  extra/plot_geometry.py
c83d1b5a93b458d37a5a5da3c601cce0f90f734c6b67318a6d4df509c14bf703  extra/prepare_cases_fixed.py
6e1d7b27ee1ad5e2bb45e107e360b3157416b53596322c00d42e962630a6a995  extra/run_case_fixed.sh
c02bf2667253be1a0059688d3b1e0fa68f460cd9fbd988ebcba9a66c6611932a  extra/synthetic_log_stick.txt
ecc16439084a4f499d29045773d1f9633c6155b69ee2054d234519852544afb6  scripts/collect_fates.py
872e23656c3cc94d0418f59138413ec48eff04d459807ab7d495f79cf80b81e7  scripts/compare_fates.py
5cf6d54bcb8ede91c512ccc02bb19f7ef7a7b306377f54f002ad591c83c9dd18  scripts/prepare_cases.py
cfdd3ad059d748ec4c0568a6e4ce8134973d4362daf167f3632a619ecb6a8a0b  scripts/run_case.sh
