Getting started

Installing AGILE

(from the repository README)

  • Install the uv package manager, which manages the Python dependencies (fypp, fortdepend, f90nml) needed by the build system:

    pip install uv
    # or
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • Make sure $AGILE_DIR points to the repository root folder:

    export AGILE_DIR=/path/to/AGILE
    
  • Install the required Python packages and activate them:

    cd $AGILE_DIR
    uv sync
    source $AGILE_DIR/.venv/bin/activate
    
  • Go into a test, e.g.

    cd $AGILE_DIR/tests/hd/KH3D
    
  • To compile, load the appropriate modules, e.g. on Snellius:

    module purge
    module load 2023
    module load OpenMPI/4.1.5-NVHPC-24.5-CUDA-12.1.1
    
  • Compile with nvfortran and the OpenACC GPU backend activated via

    make arch=nvidia OPENACC=1
    

or the OpenMP target-offload backend via

    make arch=nvidia OPENMP=1

(OPENACC and OPENMP are mutually exclusive GPU offload backends). For a plain CPU build (gfortran/OpenMPI, no GPU toolchain required), use make arch=gnu instead.

Running the compiled test

Once compiled, each test directory has a ./agile executable and a parameter file (agile.par or test.par). Run it with MPI, for example:

mpirun -np 4 ./agile -i test.par

This is the same pattern the automated test suite uses (see tests/test_rules.make) -- it produces .dat/.log/.vtu output in the test directory, which can be compared against the reference output already present in that test's correct_output/ folder.