Skip to content
/ alien Public
forked from arcaneframework/alien

Alien: an interface for linear solvers

License

Notifications You must be signed in to change notification settings

stdcm/alien

 
 

Repository files navigation

All Alien world into one git repository. This repository aims at easing development by compiling together Alien's core, its high level dependencies and its plugins.

How to use ?

Simply clone this repository.

git clone https://github.com/arcaneframework/alien.git
cd alien

After, you can run CMake (at least version 3.18).

mkdir build && cd build
cmake ..

Useful CMake options:

  • ALIEN_FRAMEWORK_EXTERNAL, compile each subproject separately, OFF by default
  • ALIEN_PLUGIN_GINKGO, whether Ginkgo plugin is compiled, OFF by default
  • ALIEN_PLUGIN_HYPRE, whether hypre plugin is compiled, OFF by default
  • ALIEN_PLUGIN_TRILINOS, whether Trilinos plugin is compiled, OFF by default
  • ALIEN_USE_HDF5, whether HDF5 support is enabled, OFF by default.

We can mention also other generic CMake options :

  • CMAKE_EXE_LINKER_FLAGS="-Wl,--no-as-needed", useful on debian based linux distribution (like ubuntu), as without linker drops libraries that are not explicitly referenced, breaking our plugin interface.
  • CMAKE_VERBOSE_MAKEFILE=ON

Requirements

Alien requires a recent build environment:

  • recent CMake (>= 3.18)
  • C++ compiler that supports C++-17 (gcc, llvm/clang, intel)
  • MPI
  • boost, at least with timer and program options components enabled
  • glib2
  • BLAS
  • Arccon
  • Arccore
  • Google Tests, for unit tests

On Ubuntu-20.04, installing these packages is sufficient for running hypre solvers:

apt-get install build-essential cmake gcc g++ gdb \
       libhypre-dev \
       libboost-dev libboost-program-options-dev libgtest-dev libglib2.0-dev

For GoogleTest, one must finish installation by running:

cd $(mktemp -d) && cmake /usr/src/googletest && cmake --build . --target install

How it works ?

This repository contains the following subdirectories:

  • src, the main repository for linear algebra,
  • plugins, with different plugins for Alien, to call Ginkgo, hypre, PETSc, or Trilinos external libraries.

For git developers, Arccore and Arccon dependencies can be built on the fly by setting ALIENDEV_EMBEDDED to ON.

Documentation generation

Documentation is available on documentation, but can be locally built.

You need a python version 3 with sphinx and breathe modules.

You can easily create a conda environment as following:

cd $ALIEN_ROOT/tools/python
conda env create -f alien-env.yml
conda activate alien-env

Then the CMake flag for documentation has to be activated in the Alien configuration step

cmake -S `pwd`/alien \
      -B `pwd`/build-alien \
      -DALIEN_GENERATE_DOCUMENTATION=ON \
       ....
       
make -C `pwd`/build-alien install
make -C `pwd`/build-alien doc_alien

The documentation is generated in :

firefox `pwd`/build-alien/alien_doc/index.html

About

Alien: an interface for linear solvers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 94.2%
  • CMake 4.7%
  • Other 1.1%