Install
EDIpack is available in the form of a static Fortran library
(libedipack.a) and the related Fortran module EDIPACK
.
The release version includes additional modules to extend the
software functionalities: an inequivalent impurities extension EDIpack2ineq
and a shared dynamical library implementing the Fortran-C interface.
A standard installation method is available through CMake.
An alternative approach is provided via Anaconda.
From source
Building
We assume that SciFortran and MPI have been correctly installed and are available in the system. See related documentation. Note that the installation of EDIpack closely follows the SciFortran template.
Clone the repo:
git clone https://github.com/edipack/EDIpack EDIpack
Optionally define the fortran compiler:
export FC=mpif90/gfortran/ifort
From the repository directory (cd EDIpack) make a standard out-of-source CMake compilation:
GNU Make
Using GNU make is the default CMake workflow, with widest version support (CMake > 3.0). Note that parallel make execution is tested and working.
mkdir build
cd build
cmake ..
make -j
The CMake compilation can be customized using the following additional variables:
Option |
Scope |
Value |
---|---|---|
|
set a long or short prefix for the default installation directory |
yes/True OR no/False (default: True) |
|
specify custom installation prefix |
User defined path |
|
MPI support pre-compilation flag |
yes/True OR no/False (default: True) |
|
Include inequivalent impurities extension (in |
yes/True OR no/False (default: True) |
|
Verbose CMake output |
yes/True OR no/False (default: True, superseded by |
|
Compilation flags |
RELEASE/TESTING/DEBUG/AGGRESSIVE (Default RELEASE) |
Warning
BUILD_TYPE=AGGRESSIVE
includes many deep level debug options which might not compile on some systems or breakdown compilation at linking step.
The default target builds either the main library and the C-bindings. A specific building for each library is also available specifying the required target. For user convenience at the end CMake configuration step the following recap is printed:
*Build edipack [Default]:
$ make -j [all/edipack, default=all]
*Build C-bindings:
$ make edipack_cbindings
*Install:
$ make [all/edipack/edipack_cbindings, default=all] install
*Uninstall:
$ make uninstall
*Build documenation:
$ make doc
*Build and Runtest:
$ make test
Installing
System-wide installation is completed after the build step using
make install
Please follow the instructions on the screen to complete installation on your environment. The library can be loaded using one of the following, automatically generated, files :
A generated environment module , installed to ~/.modules.d/edipack/<PREFIX/default if LONG_PREFIX=T/F>
A generated bash script installed to <PREFIX>/bin/configvars.sh, to be sourced for permanent loading.
A generated pkg-config file to, installed to ~/.pkg-config.d/edipack.pc
For ease of use a specific and automatically generated recap message is printed after installation.
Uninstalling
CMake does not officially provide uninstall procedures in the generated makefiles. Hence EDIpack supplies a homebrew method to remove the generated files by calling (from the relevant build folder):
make uninstall
From Anaconda
We provide Linux and MacOS packages for the Anaconda distribution. To install the module, the virtual environment of choice should include python 3.10 or later.
Once a command-line tool such as conda or mamba is installed, an environment using one of the available python version can be created, and then the EDIpack package can be installed:
conda create -n edipack
conda activate edipack
conda install -c conda-forge -c edipack edipack
this installs a bundle of the scifor and edipack libraries. In order to compile a
fortran program linking the libraries, we provide .pc files which are readable via
pkg-config
. If not present, the compilers
and pkg-config
conda
packages need to be installed
conda install compilers
conda install pkg-config
The inclusion and linking flag can then be obtained via
pkg-config --cflags edipack scifor
pkg-config --libs edipack scifor