AMPHIBIOUS
Documentation

AMPHIBIOUS is a direct numerical simulation (DNS) and large-eddy simulation (LES) solver for the incompressible Navier--Stokes equations, with an optional passive scalar (temperature) equation. The solver is based on the immersed-boundary (IB) method. The core IB algorithm uses finite differences and is fully second-order accurate; it is described in the paper by Luchini et al. (2025), published in the Journal of Computational Physics 539, 114245, 2025.
The name AMPHIBIOUS reflects the ability to adapt to different computational environments. The source can be compiled for CPUs or GPUs; the program works on computational domains that have either a simple shape described analytically, or a complex shape described via STL files. The distribution includes several tutorial examples, including both types of geometries.
The code is written in CPL and parallelized using MPI, with OpenACC or OpenMP support for CPUs and multi-GPU systems. GPU support is vendor-independent and compatible with both unified and separate memory models.
The program is split into three main parts: preproc, solver and postproc, and is controlled via a single input file settings.in. A few utilities are also provided.
The preproc program runs in parallel on CPUs and carries out preliminary work:
- defines the computational volume, and creates a Cartesian mesh within it;
- decomposes the meshed volume into subdomains, called cubes, establishes connectivity among cubes, and gets rid of empty cubes;
- computes the IB coefficients;
- sets the boundary conditions;
- writes to disk all the information later needed by
solver.
The solver program runs in parallel on CPUs or GPUs, and executes the actual simulation:
- advances the solution in time;
- optionally computes flow statistics;
- optionally writes to disk a database of flow snapshots.
The postproc program runs in parallel on CPUs and prepares flow visualization and statistics:
- converts snapshots (if available) in VTK;
- converts runtime-computed statistics (if available) in VTK;
- produces ASCII files with statistics averaged over homogeneous directions (if available).
Contents
Documentation is available for each component of AMPHIBIOUS:
- Overview: a brief tour of the code
- Preproc: geometry, mesh, boundary conditions
- Solver: code layout, communication strategy, main variables
- Postproc: output files, flow statistics, VTK for visualization
- Utilities: extensive interpolation code and other tools
- Tutorials: examples contained in the distribution, with step-by-step guide to run them
Documentation generated on 2026-09-09