Skip to content

Commit

Permalink
Merge pull request dftbplus#64 from vanderhe/readmeExtension
Browse files Browse the repository at this point in the history
Extend readme to include libXC installation
  • Loading branch information
bhourahine authored Aug 14, 2023
2 parents a0475a4 + b1708f0 commit e0ebba1
Showing 1 changed file with 71 additions and 11 deletions.
82 changes: 71 additions & 11 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ robust. Make sure, you check results as careful as possible. Use at your own
risk!


Installing
==========
Installation
============

|build status|

Expand All @@ -30,16 +30,42 @@ Prerequisites
* libXC library with f03 interface (version >=6.0.0)


Building the code
-----------------
Obtaining via Conda
-------------------

The preferred way of obtaining SkProgs is to install it via the conda package
management framework using `Miniconda
<https://docs.conda.io/en/latest/miniconda.html>`_ or `Anaconda
<https://www.anaconda.com/products/individual>`_. Make sure to add/enable the
``conda-forge`` channel in order to be able to access SkProgs::

conda config --add channels conda-forge
conda config --set channel_priority strict

We recommend to set up a dedicated conda environment and to use the
`mamba solver <https://mamba.readthedocs.io/>`_ ::

conda create --name skprogs
conda activate skprogs
conda install conda-libmamba-solver
conda config --set solver libmamba

to install the latest stable release of SkProgs (Fortran and Python
components)::

mamba install skprogs skprogs-python


Building from source
--------------------

Follow the usual CMake build workflow:

* Configure the project, specify your compilers (e.g. ``gfortran``),
the install location (e.g. ``$HOME/opt/skprogs``) and the build directory
(e.g. ``_build``)::
the install location (i.e. path stored in ``YOUR_SKPROGS_INSTALL_FOLDER``,
e.g. ``$HOME/opt/skprogs``) and the build directory (e.g. ``_build``)::

FC=gfortran cmake -DCMAKE_INSTALL_PREFIX=$HOME/opt/skprogs -B _build .
FC=gfortran cmake -DCMAKE_INSTALL_PREFIX=YOUR_SKPROGS_INSTALL_FOLDER -B _build .

If libXC is installed in a non-standard location, you may need to specify
either the ``CMAKE_PREFIX_PATH`` environment variable (if libXC was built with
Expand All @@ -65,6 +91,39 @@ Follow the usual CMake build workflow:
cmake --install _build


Building libXC from source
--------------------------

Follow the usual CMake build workflow:

* Clone the official libXC repository and checkout the latest release tag, e.g.
``6.2.2``::

git clone https://gitlab.com/libxc/libxc.git libxc
cd libxc/
git checkout 6.2.2

* Configure the project, specify your compilers (e.g. ``gfortran`` and ``gcc``),
the install location (i.e. path stored in ``YOUR_LIBXC_INSTALL_FOLDER``, e.g.
``$HOME/opt/libxc``) and the build directory (e.g. ``_build``)::

FC=gfortran CC=gcc cmake -DENABLE_FORTRAN=True -DCMAKE_INSTALL_PREFIX=YOUR_LIBXC_INSTALL_FOLDER -B _build .

* If the configuration was successful, build the code ::

cmake --build _build -- -j

* After successful build, you should test the code by running ::

pushd _build
ctest -j
popd

* If the tests were successful, install the package via ::

cmake --install _build


Advanced build configuration
============================

Expand All @@ -85,7 +144,7 @@ variable. If you want to load an external toolchain file instead of one from the
source tree, you can specify the file path with the ``-DTOOLCHAIN_FILE`` option
::

-DTOOLCHAIN_FILE=/some/path/myintel.cmake
-DTOOLCHAIN_FILE=/path/to/myintel.cmake

or with the ``SKPROGS_TOOLCHAIN_FILE`` environment variable.

Expand All @@ -101,9 +160,10 @@ Generating SK-files
The basic steps of generating the electronic part of the SK-tables are as
follows:

* Initialize the necessary environment variables by sourceing the
``skprogs-activate.sh`` script (provided you have BASH or compatible shell,
otherwise inspect the script and set up the environment variables manually)::
* If you have build SkProgs from source, initialize the necessary environment
variables by sourceing the ``skprogs-activate.sh`` script (provided you have
BASH or a compatible shell, otherwise inspect the script and set up the
environment variables manually)::

source <SKPROGS_INSTALL_FOLDER>/bin/skprogs-activate.sh

Expand Down

0 comments on commit e0ebba1

Please sign in to comment.