Skip to content

Available Executables

Each LAVA distribution contains multiple executables for different physics configurations. The executables are organized by solver type (Cartesian, Curvilinear, Unstructured) with varying numbers of species and multiphase capabilities.

Naming Convention

LAVA executables follow this naming pattern:

lava<solver>.<dim>.<species>[.<options>][.<arch>][.<precision>]
  • <solver>: cart (Cartesian), curv (Curvilinear), or unst (Unstructured)
  • <dim>: 2D or 3D (two-dimensional only in Cartesian)
  • <species>: NS1, NS2, NS3, NS4, NS5 (number of species)
  • <options>: MP (multiphase, when applicable)
  • <arch>: AVX2 or AVX512 (CPU executables only; omitted for GPU)
  • <precision>: DOUBLE or FLOAT (optional; defaults to DOUBLE)

Examples:

  • lavacart.3D.NS1 - Cartesian solver, 1 species, double precision, GPU
  • lavacart.3D.NS1.FLOAT - Cartesian solver, 1 species, single precision, GPU
  • lavacart.3D.NS1.AVX2 - Cartesian solver, 1 species, double precision, CPU with AVX2
  • lavaunst.3D.NS3.AVX512 - Unstructured solver, 3 species, double precision, CPU with AVX512

Executable Selection Guide

For GPU Systems

System Architecture GPU Support Recommended Tarball Example
x86_64 CUDA Compute 8.0+
(Ampere A100, Ada RTX 5090/4090, Blackwell, and newer)
LAVA_*_NVIDIA_OpenMPI_x86_64_*.tar.gz lavacart.3D.NS1
ARM CUDA Compute 9.0+
(Hopper GH200, H100/H200, and newer)
LAVA_*_NVIDIA_HPCX_aarch64_*.tar.gz lavacart.3D.NS1

For CPU-Only Systems

Instruction Set CPU Support Recommended Tarball Example
AVX2 Intel: Haswell, Broadwell, Skylake (non-X)
AMD: Zen, Zen 2, Zen 3 (Rome, Milan, Genoa)
LAVA_*_Intel_OpenMPI_x86_64_*.tar.gz lavacart.3D.NS1.AVX2
AVX512 Intel: Skylake-X, Cascade Lake, Ice Lake, Sapphire Rapids
AMD: Zen 5 (Turin)
LAVA_*_Intel_OpenMPI_x86_64_*.tar.gz
or LAVA_*_Intel_Cray-MPICH_x86_64_*.tar.gz
lavacart.3D.NS1.AVX512

Choosing the Right Instruction Set

  • AVX512: Use on supported CPUs for best performance
  • AVX2: Use for broader compatibility or when AVX512 is not available
  • Check your CPU capabilities: lscpu | grep -i flags (look for avx2 or avx512)

Precision Selection

  • Double Precision (default): Higher accuracy
  • Use executables without precision suffix
  • Example: lavacart.3D.NS1

  • Single Precision: faster runtime, uses less memory

  • Use executables with .FLOAT suffix
  • Example: lavacart.3D.NS1.FLOAT

Single Precision Validation Required

Single precision may not be suitable for all applications. Users must perform their own testing and validation to verify that .FLOAT executables produce acceptable numerical accuracy for their specific simulation. Compare results against double precision runs to assess solution quality.

Species Selection

Choose the executable based on your application:

  • NS1: Single-species
  • NS2: Two-species
  • NS3: Three-species (can be with or without multiphase (.MP suffix required))
  • NS4: Four-species with multiphase (requires .MP suffix)
  • NS5: Five-species with multiphase (requires .MP suffix)

Note

Higher species counts increase computational cost. Use the executable that best matches your requirements.

Additional Tools

For detailed information regarding supporting tools, please refer to the following documentation.

GPU Executables (NVIDIA Builds)

GPU executables are available in the LAVA_*_NVIDIA_OpenMPI_x86_64_*.tar.gz (for x86_64 systems) and LAVA_*_NVIDIA_HPCX_aarch64_*.tar.gz (for ARM systems) tarballs. GPU executables are ptx-based binaries that support multiple GPU architectures.

Cartesian Solver (lavacart) - GPU

Executable Name Dimension Species Multiphase Precision
lavacart.3D.NS1 3 1 No Double
lavacart.3D.NS1.FLOAT 3 1 No Single
lavacart.3D.NS2 3 2 No Double
lavacart.3D.NS2.FLOAT 3 2 No Single
lavacart.3D.NS3 3 3 No Double
lavacart.3D.NS3.FLOAT 3 3 No Single
lavacart.3D.NS3.MP 3 3 Yes Double
lavacart.3D.NS3.MP.FLOAT 3 3 Yes Single
lavacart.3D.NS4.MP 3 4 Yes Double
lavacart.3D.NS4.MP.FLOAT 3 4 Yes Single
lavacart.3D.NS5.MP 3 5 Yes Double
lavacart.3D.NS5.MP.FLOAT 3 5 Yes Single
lavacart.2D.NS1 2 1 No Double
lavacart.2D.NS1.FLOAT 2 1 No Single

Curvilinear Solver (lavacurv) - GPU

Executable Name Species Multiphase Precision
lavacurv.3D.NS1 1 No Double

Unstructured Solver (lavaunst) - GPU

Executable Name Species Multiphase Precision
lavaunst.3D.NS1 1 No Double
lavaunst.3D.NS1.FLOAT 1 No Single
lavaunst.3D.NS2 2 No Double
lavaunst.3D.NS2.FLOAT 2 No Single
lavaunst.3D.NS3 3 No Double
lavaunst.3D.NS3.FLOAT 3 No Single

CPU Executables (Intel Builds)

CPU executables are available in Intel compiler tarballs: LAVA_*_Intel_OpenMPI_x86_64_*.tar.gz and LAVA_*_Intel_Cray-MPICH_x86_64_*.tar.gz.

Intel + OpenMPI (x86_64)

Available in LAVA_*_Intel_OpenMPI_x86_64_*.tar.gz

This tarball includes both AVX2 and AVX512 executables with double and single precision variants.

Cartesian Solver (lavacart) - CPU

Executable Name Dimension Species Multiphase Precision Architecture
lavacart.3D.NS1.AVX2 3 1 No Double AVX2
lavacart.3D.NS1.AVX2.FLOAT 3 1 No Single AVX2
lavacart.3D.NS1.AVX512 3 1 No Double AVX512
lavacart.3D.NS1.AVX512.FLOAT 3 1 No Single AVX512
lavacart.3D.NS2.AVX2 3 2 No Double AVX2
lavacart.3D.NS2.AVX2.FLOAT 3 2 No Single AVX2
lavacart.3D.NS2.AVX512 3 2 No Double AVX512
lavacart.3D.NS2.AVX512.FLOAT 3 2 No Single AVX512
lavacart.3D.NS3.AVX2 3 3 No Double AVX2
lavacart.3D.NS3.AVX2.FLOAT 3 3 No Single AVX2
lavacart.3D.NS3.AVX512 3 3 No Double AVX512
lavacart.3D.NS3.AVX512.FLOAT 3 3 No Single AVX512
lavacart.2D.NS1.AVX2 2 1 No Double AVX2
lavacart.2D.NS1.AVX2.FLOAT 2 1 No Single AVX2

Curvilinear Solver (lavacurv) - CPU

Executable Name Species Multiphase Precision Architecture
lavacurv.3D.NS1.AVX2 1 No Double AVX2
lavacurv.3D.NS1.AVX512 1 No Double AVX512

Unstructured Solver (lavaunst) - CPU

Executable Name Species Multiphase Precision Architecture
lavaunst.3D.NS1.AVX2 1 No Double AVX2
lavaunst.3D.NS1.AVX2.FLOAT 1 No Single AVX2
lavaunst.3D.NS1.AVX512 1 No Double AVX512
lavaunst.3D.NS1.AVX512.FLOAT 1 No Single AVX512
lavaunst.3D.NS2.AVX2 2 No Double AVX2
lavaunst.3D.NS2.AVX2.FLOAT 2 No Single AVX2
lavaunst.3D.NS2.AVX512 2 No Double AVX512
lavaunst.3D.NS2.AVX512.FLOAT 2 No Single AVX512
lavaunst.3D.NS3.AVX2 3 No Double AVX2
lavaunst.3D.NS3.AVX2.FLOAT 3 No Single AVX2
lavaunst.3D.NS3.AVX512 3 No Double AVX512
lavaunst.3D.NS3.AVX512.FLOAT 3 No Single AVX512

Intel + Cray-MPICH (Athena - AVX512)

Available in LAVA_*_Intel_Cray-MPICH_x86_64_*.tar.gz

Cartesian Solver (lavacart) - CPU AVX512

Executable Name Dimension Species Multiphase Precision
lavacart.3D.NS1.AVX512 3 1 No Double
lavacart.3D.NS1.AVX512.FLOAT 3 1 No Single
lavacart.3D.NS2.AVX512 3 2 No Double
lavacart.3D.NS2.AVX512.FLOAT 3 2 No Single
lavacart.3D.NS3.AVX512 3 3 No Double
lavacart.3D.NS3.AVX512.FLOAT 3 3 No Single
lavacart.2D.NS1.AVX512 2 1 No Double
lavacart.2D.NS1.AVX512.FLOAT 2 1 No Single

Curvilinear Solver (lavacurv) - CPU AVX512

Executable Name Species Multiphase Precision
lavacurv.3D.NS1.AVX512 1 No Double

Unstructured Solver (lavaunst) - CPU AVX512

Executable Name Species Multiphase Precision
lavaunst.3D.NS1.AVX512 1 No Double
lavaunst.3D.NS1.AVX512.FLOAT 1 No Single
lavaunst.3D.NS2.AVX512 2 No Double
lavaunst.3D.NS2.AVX512.FLOAT 2 No Single
lavaunst.3D.NS3.AVX512 3 No Double
lavaunst.3D.NS3.AVX512.FLOAT 3 No Single