Skip to content

Get started

  1. Download the archive from our website. It is named like muproPFSDK-<version>-Linux.tar.xz.

  2. Unpack it:

    Terminal window
    tar -xJf muproPFSDK-<version>-Linux.tar.xz
  3. Move the contents where you want the SDK installed — your home directory is a fine choice:

    Terminal window
    mv muproPFSDK-<version>-Linux/opt/mupro/phasefieldsdk ${HOME}/mupro

The SDK is consumed through CMake. Each main program has its own documentation; in general the procedure is:

  1. Create your own preset file:

    Terminal window
    cp CMakePresets.json CMakeUserPresets.json
  2. Point the mupro_ROOT cache variable in CMakeUserPresets.json at the directory you installed the SDK into.

  3. Configure and build.

  1. The first time you run a main program — more precisely, the first time it calls any SDK setup routine — it finds no licence file, collects your machine’s information, and writes a client file. Send that file to [email protected].

  2. We reply with a license.lic file. Put it where the main program can read it on its next run.

  3. On a cluster, your compute nodes must share a filesystem with the node you generated the client file on. Run the program once on that node first: the first run validates license.lic and writes the verification result into your home directory, and later runs rely on that.

The SDK is developed against Intel oneAPI, so a Linux machine with Intel processors is the supported environment for developing your main program. Intel publishes the hardware and system requirements for the oneAPI HPC Toolkit.

The supported platform. The SDK is developed and released on Linux with Intel oneAPI, and this is the only configuration we test scientific results against.

You need three things installed:

  1. Intel oneAPI Base Toolkit
  2. Intel oneAPI HPC Toolkit
  3. CMake 3.20 or newer

For macOS development-only builds, install cmake, ninja, gcc, openblas, fftw and open-mpi through Homebrew. FFTW is not bundled with the SDK.

Parallelism is distributed, through MPI — we use the Intel MPI that ships with the oneAPI HPC Toolkit. There is no shared-memory parallelism.

The Intel compilers from the oneAPI Base Toolkit. Recent oneAPI releases ship ifx rather than ifort, and the SDK’s presets use ifx.

We recommend Visual Studio Code with the Modern Fortran extension and fortls installed.

The SDK is written mainly in Fortran, and we strongly recommend Fortran for your main program too. C and C++ can interoperate with Fortran in principle, but we do not test that route, so it is at your own risk.