Imparare OpenFOAM 14 – Guide passo passo alla CFD

In lavorazione

di giux 18 articoli ultimo il 16 Ottobre 2026 0 commenti

Un percorso per imparare OpenFOAM 14 (Foundation / CFD Direct) partendo da zero, un caso alla volta. Ogni guida costruisce un caso completo e riproducibile, lo risolve e controlla il risultato con i numeri: dove esiste una soluzione analitica, il confronto è quantitativo e non solo visivo.

Il primo blocco usa un solo problema fisico, il flusso laminare fra due lastre piane, che ha la soluzione esatta di Poiseuille. Tenere ferma la fisica permette di cambiare una cosa per volta e vederne l’effetto: la mesh, il generatore di mesh, l’automazione con Python, il calcolo parallelo, le condizioni al contorno.

I primi sei casi del percorso in un video di presentazione (in italiano), generato con Gemini Notebook a partire dagli articoli.
  1. Caso 01 – flusso laminare tra lastre piane validato con Poiseuille
  2. Caso 02 – studio di convergenza della mesh
  3. Caso 03 – mesh Gmsh importata con gmshToFoam
  4. Caso 04 – canale parametrico con Gmsh e Python
  5. Caso 05 – calcolo parallelo con MPI
  6. Caso 06 – sensibilità alla condizione di ingresso

Gli strumenti sono OpenFOAM 14 con il solutore incompressibleFluid tramite foamRun, blockMesh e Gmsh per le mesh, ParaView 5.13.2 in modalità client-server per la visualizzazione, Python 3 per la generazione parametrica e OpenMPI per il calcolo parallelo.

Queste sono le prime sei guide introduttive.

Costruire un caso, file per file

La seconda fase del percorso cambia domanda: non più come si esegue un caso già pronto, ma perché contiene proprio quei file e come scriverli da soli. È una serie in otto parti, un livello del caso alla volta.

  1. Parte 1 – anatomia di un caso e linguaggio dei dizionari
  2. Parte 2 – costruire una mesh con blockMeshDict
  3. Parte 3 – campi, condizioni iniziali e condizioni al contorno
  4. Parte 4 – controlDict e controllo della simulazione
  5. Parte 5 – fvSchemes, dalle equazioni alla discretizzazione
  6. Parte 6 – fvSolution, solutori lineari e algoritmi di soluzione
  7. Parte 7 – proprietà fisiche e modelli
  8. Parte 8 – leggere e creare casi in autonomia

Lette in ordine, le otto parti portano dalla struttura di un caso alla capacità di leggerne uno sconosciuto e di costruirne uno nuovo in autonomia: campi e condizioni al contorno, controllo dell’esecuzione, schemi di discretizzazione, solutori lineari e algoritmi, proprietà fisiche e modelli.

Lavorare su un server Linux da Windows

Quattro guide operative accompagnano il percorso per chi lavora su un server Linux dal PC Windows. La prima spiega tutto il flusso: preparazione dei dizionari con Notepad++, trasferimento SFTP con FileZilla, esecuzione via SSH da PowerShell con tmux, analisi dei log con klogg e visualizzazione con ParaView collegato a pvserver attraverso un tunnel SSH. Include il PDF da scaricare. La seconda riguarda ciò che viene dopo il lancio: lettura del log, residui, function object, caduta di pressione e portata, bilancio di massa e una verifica riproducibile della convergenza. La terza usa ParaView per misurare: profili, medie di sezione, portate, caduta di pressione, confronto con Poiseuille e regioni di ricircolo. La quarta stabilisce se un risultato è affidabile: grandezza di interesse, famiglia di tre mesh, bilancio di massa, confronto con Poiseuille, ordine osservato, estrapolazione di Richardson e GCI, studio del passo temporale e validazione fisica.

Articoli in evidenza 3

Software usati

  • OpenFOAM 14 OpenFOAM Foundation: il codice CFD usato in tutto il percorso, con il solutore incompressibleFluid tramite foamRun.
  • Gmsh Generatore di mesh usato dal caso 03, anche tramite la sua API Python nel caso 04.
  • ParaView Visualizzazione dei risultati, versione 5.13.2 in modalità client-server con pvserver.

Documenti e dispense

Il diario del progetto 18

  1. 21/09/2026 OpenFOAM 14, caso 01: flusso laminare tra lastre piane validato con Poiseuille Primo caso del percorso OpenFOAM 14: canale laminare tra lastre piane costruito da zero con blockMesh, risolto con foamRun e validato contro il profilo…
  2. 22/09/2026 OpenFOAM 14, caso 02: studio di convergenza della mesh Lo stesso canale laminare su tre mesh (2000, 8000, 32000 celle): l'errore rispetto a Poiseuille scala con ordine circa 2. Come si imposta e…
  3. 23/09/2026 OpenFOAM 14, caso 03: mesh Gmsh importata con gmshToFoam Il canale laminare rifatto con una mesh strutturata generata da Gmsh e importata con gmshToFoam: patch, changeDictionary e confronto con blockMesh, con risultati identici.
  4. 25/09/2026 OpenFOAM 14, caso 04: canale parametrico con Gmsh e Python Uno script Python con l'API di Gmsh genera il canale da parametri della riga di comando: stessa logica, geometrie e mesh diverse, validate in…
  5. 26/09/2026 OpenFOAM 14, caso 05: calcolo parallelo con MPI Lo stesso caso in seriale e con quattro processi MPI: decomposePar con SCOTCH, mpirun, reconstructPar, speed-up 3,5 ed equivalenza numerica verificata punto per punto.
  6. 27/09/2026 OpenFOAM 14, caso 06: sensibilità alla condizione di ingresso Tre velocità d'ingresso, stessa mesh e stesso solutore: velocità massima e gradiente di pressione scalano come previsto da Poiseuille. Come isolare l'effetto di una…
  7. 29/09/2026 OpenFOAM 14, parte 1: anatomia di un caso e linguaggio dei dizionari Prima parte della serie sulla costruzione del caso OpenFOAM 14: cartelle system, constant e temporali, intestazione FoamFile, sintassi dei dizionari, dimensioni e unità, file…
  8. 30/09/2026 OpenFOAM 14, parte 2: costruire una mesh con blockMeshDict Seconda parte della serie OpenFOAM 14: un condotto 3D da otto vertici, blocco hex, numero di celle, grading semplice e simmetrico, patch di contorno,…
  9. 16/10/2026 OpenFOAM 14, parte 3: campi, condizioni iniziali e condizioni al contorno Come si scrivono e si ragionano i file 0/U e 0/p in OpenFOAM 14: internalField e boundaryField, classi e dimensioni con nome, corrispondenza con…
  10. 16/10/2026 OpenFOAM 14, parte 4: controlDict e controllo della simulazione Il file system/controlDict di OpenFOAM 14 spiegato voce per voce: modulo solutore per foamRun, tempo simulato, criteri di avvio e arresto, politiche di scrittura,…
  11. 16/10/2026 OpenFOAM 14, parte 5: fvSchemes, dalle equazioni alla discretizzazione Come si legge e si modifica system/fvSchemes in OpenFOAM 14: dai termini delle equazioni alle sei famiglie di schemi (ddt, grad, div, laplacian, interpolation,…
  12. 16/10/2026 OpenFOAM 14, parte 6: fvSolution, solutori lineari e algoritmi di soluzione Che cosa succede dopo la discretizzazione in OpenFOAM 14: il sistema A x = b, il dizionario solvers di system/fvSolution, tolerance, relTol e maxIter,…
  13. 16/10/2026 OpenFOAM 14, parte 7: proprietà fisiche e modelli Dalla viscosità cinematica in physicalProperties ai modelli laminare, RAS e LES in momentumTransport: che cosa cambia nel caso quando cambia la fisica, quali campi…
  14. 16/10/2026 OpenFOAM 14, parte 8: leggere e creare casi in autonomia L'unità conclusiva del corso: documentazione ufficiale v14, foamDictionary, foamSearch, foamInfo, foamToC e foamFind, diagnosi sistematica degli errori e un progetto finale costruito da una…
  15. 16/10/2026 OpenFOAM su server Linux, lavorando da Windows: SSH, FileZilla, PowerShell, log e ParaView client/server Guida operativa per usare OpenFOAM 14 installato su un server Linux lavorando dal proprio PC Windows: preparazione dei casi con Notepad++, trasferimento SFTP con…
  16. 16/10/2026 OpenFOAM: monitoraggio, diagnostica e verifica della convergenza Guida operativa per controllare una simulazione OpenFOAM 14 dal lancio alla valutazione dei risultati: lettura del log, residui e continuità, function object per residui…
  17. 16/10/2026 ParaView per OpenFOAM: analisi quantitativa e post-processing scientifico Usare ParaView 5.13 con OpenFOAM 14 per misurare e non solo per visualizzare: profili con Plot Over Line, medie di sezione e portate con…
  18. 16/10/2026 OpenFOAM: verifica, validazione e indipendenza dalla mesh Un protocollo replicabile per stabilire se un risultato OpenFOAM 14 è affidabile: grandezza di interesse, famiglia di tre mesh, convergenza iterativa e bilanci, confronto…

Tutti i progetti