Github Repository of FLOW36.
FLOW36 is a pseudo-spectral code for direct numerical simulation of multiphase turbulence based on a phase-field model approach.
If you use this code, please cite the following work:
@article{roccon2025,
title = {FLOW36: A spectral solver for phase-field based multiphase turbulence simulations on heterogeneous computing architectures},
journal = {Computer Physics Communications},
volume = {313},
pages = {109640},
year = {2025},
issn = {0010-4655},
author = {Roccon, A. and Soligo, G. and Soldati, A.},
}Webminar on FLOW36 available on Cassyni
G. Soligo (https://github.com/giovannisoligo)
A. Roccon (https://github.com/aroccon)
- Single-phase flow (NS): Turbulent channel flow, close and open configurations
- Phase-field method (NS + CH): Clean intergaces (surfactant-free): Standard CH + Profile and Flux-corrected
- Phase-field method (NS + CH1+ CH2): Surfactant-laden interfaces (possible use of the dual grid)
- Phase-field method + scalar (NS + CH + EE): Heat/mass transfer in drop- and bubble-laden flows
- Phase-field method + particles (NS + CH + LPT): Interface-particle interactions
- Single-phase + passive scalar (NS + EE): Heat transfer in single-phase turbulence
- Single-phase + particles (NS + LPT): Particle-laden turbulent flows
- Single-phase + temperature + particles (NS + EE + LPT): Particle-laden turbulent flows with temperature
Click here for a list of the published works
Click here for the validation data shown in the manuscript
- Clone the repository.
- Edit the
compile.shfile:
Select the configurations you want to run and the modules to load. Many EUROHPC supercomputer configurations are included, along with options for different compilers such as GNU, NVIDIA, AMD, Intel, IBM, etc. Simulation parameters can be defined after the machine configuration section - Run the
compile.shscript:
This will create theset_runfolder. Inside, you will find theresultsfolder and thesc_compiledfolder, which contains the compiled source code and the main executable (flow36) - Run the simulation:
Usempirunor edit/create a SLURM file for your target machine - Access the results:
The output fields will be located inset_run/resultsand can be visualized using ParaView. ParaView files can be generated with theparaview_output_fgpost-processing code
- For CPU runs:
- Fortran compiler (tested with gfortran, ifort, nvfortran, ftn and xlf)
- MPI Library (tested with MPICH, Spectrum, IntelMPI, OpenMPI)
- FFTW library or MKL library (if using intel)
- For GPU runs:
- Nvidia HPC-SDK (> 22.X), this by default contains the compiler, the cuFFT and the openMPI libraries.
We welcome all contributions that can enhance FLOW36, including bug fixes, performance improvements, and new features. If you would like to contribute, please contact aroccon or open an Issue in the repository.
