Skip to main content

KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.

Project description

Metis Application

The Metis application provides an interface to the METIS graph partitioning library, used within Kratos Multiphysics to generate mesh partitions for MPI runs.

The applicaiton is organized in a series of processes, each one of them providing an interface to a different partitioning algorithm. The algorithm most commonly used for finite elements is metis_divide_heterogeneous_input_process.h, which generates a partition of the mesh based on the nodal graph and can be used for meshes combining multiple element types.

Build instructions

Direct GNU/Linux install

Building the MetisApplication requires METIS libraries and their dependencies already installed on the system. The easiest way to get them is by the package manager of the GNU/Linux distribution. For example, in Ubuntu GNU/Linux:

sudo apt install libmetis-dev

However, there may be situations where downloading the packages may not be possible. In this case, other (potentially trickier) option is to download the source code and build the libraries. For more detailed and updated instructions for compiling METIS, GKlib, and other necessary packages, refer to Compiling Kratos with MPI support in the wiki.

Assuming that the dependencies are installed, the following steps are:

  1. Add the MetisApplication to the list of applications to be compiled in the building script for Kratos, as described in the install instructions.
export KRATOS_APPLICATIONS=
...
add_app ${KRATOS_APP_DIR}/MetisApplication
  1. Tell CMake where are located the libraries and headers of METIS, if CMake does not find them automatically. For example:
cmake -H"${KRATOS_SOURCE}" -B"${KRATOS_BUILD}" \
...
-DMETIS_ROOT_DIR="${HOME}/Projects/METIS/build"

Spack

Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on GNU/Linux, macOS, and many supercomputers. Spack is non-destructive: installing a new version of a package does not break existing installations, so many configurations of the same package can coexist.

To install Spack you just need to run the following command:

git clone -c feature.manyFiles=true https://github.com/spack/spack.git

To use it you will need to add the corresponding environment variables (or call spack_location/spack/bin/spack):

. spack_location/spack/share/spack/setup-env.sh

Then in order to install METIS:

spack install parmetis

If you want that the libraries are added automatically to LD_LIBRARY_PATH to run the following commands before loading the modules:

spack config add modules:prefix_inspections:lib64:[LD_LIBRARY_PATH]
spack config add modules:prefix_inspections:lib:[LD_LIBRARY_PATH]

Now you just need to load METIS:

spack load parmetis

Once to compile MetisApplication just remember to add the application to the cofigure bash script:

export KRATOS_APPLICATIONS=
...
add_app ${KRATOS_APP_DIR}/MetisApplication

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

KratosMetisApplication-9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

KratosMetisApplication-9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

KratosMetisApplication-9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

KratosMetisApplication-9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

KratosMetisApplication-9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page