AMPHIBIOUS documentation

AMPHIBIOUS is a direct numerical simulation (DNS) and large-eddy simulation (LES) solver for the incompressible Navier--Stokes equations, with optional passive scalar (temperature). 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 emphasizes the ability to adapt to different environments. The source can be compiled for CPU or GPU; 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)GPUs.
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 first program, preproc, 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 second program, solver, 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 third program, postproc, 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).
Documentation
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-06-10