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 two tutorial examples: the flow in a plane channel (analytical geometry), and the flow in the human nose (STL geometry).
The code is written in CPL and parallelized using MPI and OpenACC for CPUs and multi-GPU systems.
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-08-07