layout | title |
---|---|
install_and_compile |
Install and Compile |
This page talks about how to get the source of VerHem as well as the other necessary sources of third party library dependencies, and how to properly compile and link different parts of source codes and dependencies. VerHem is designed for and has been implemented on memory distributed system, good understanding of Message Passing Interface (MPI) is suggested. There are two major frameworks, which VerHem depends on, deal.ii and Trilinos. Except these two major libraries, p4est, LAPCK, ScaLAPACK, METIS and MPI are also necessary. The building configuration system of VerHem is cmake, so do deal.ii and Trilinos.
From [GitLab](https://gitlab.com/verhem/verkko-hem-repo) ```shell $ git clone https://gitlab.com/verhem/verkko-hem-repo.git ``` or from [GitHub](https://github.com/VerHem/verkko-Hem-repo) ```shell $ git clone https://github.com/VerHem/verkko-Hem-repo.git ``` then run [**cmake**](https://cmake.org/) to configure the build system ```shell $ cd verkko-Hem-repo $ mkdir build && cd build $ cmake .. ``` after then, build the binary executable ```shell $ cmake --build . -j N ``` The built executable locates in `./build/sol` with file name `VerHem`. In most case, this work just fine. However, compiling error may still happens here or there. For sake of debugging, one may add `--verbose` or `-v` in building step i.e., ```shell $ cmake --build . -j N --verbose ``` to checkout object files building and libraries linking. Depending on the system you are working with, the building tool under management of `CMake` may be different. On most `GNU/Linux` platforms, `GNU Make` a.k.a `gmake` is used. another building tool which VerHem could use is `ninja`.To successfully compile, link and run VerHem application, few significant third party libraries have to be built or installed.
For most of HPC cluster platforms, many of listed above are available by default. Frequently, users may notice that what they have to install manually are deal.ii and Trilinos, which both are cmake-configured libraries. On platform with Spack, these dependencies will be more easy to handle. If user wish to run VerHem applications on their UNIX-BSD/GNU+Linux desktop or laptop, these dependencies may be installed from ports or package management systems.