Skip to content

A library providing tools for the computation of the inverse dielectric matrix

License

Notifications You must be signed in to change notification settings

mrm24/inverse_dielectric

Repository files navigation

IDieL

IDieL(Inverse Dielectric Library) is a modern Fortran library providing a common framework for GW codes, specifically for the most common operations involving the inverse dielectric function. The code is parallelized via multithreading (OPENMP) and GPUs (via MAGMA library).

Supported operations:

  • Anisotropic averaging of ε-1(q0) (3D): the library contains functions for the computation of the inverse dielectric function at q=Γ for 3D systems.
  • Anisotropic averaging of W(q0) (2D)*: the library contains functions for the computation of the screened Coulomb potential at q=Γ for 2D systems. Valid only for 2D Coulomb cutoffs of the form $\frac{4\pi}{|\mathbf{q_\parallel+G_\parallel}|^{2}}[1-e^{|\mathbf{q_\parallel+G_\parallel}|r_{cut}}cos(G_z r_{cut})]$.
  • Body inversion: the code provides functions for inverting the body of the dielectric matrix either using CPUs or GPUs.

Experimental: (Untested)

  • Interfaces: methods are exposed to C++, and to Python (via pybind11). Notice, that the ordering of arrays must be the Fortran one.
  • GPU offload of loops: OMP5 can be used to offload loops to GPU

Install:

The programm can be easily installed using CMake (version >= 3.20).

External dependencies

  • spglib
  • MAGMA (optional; mandatory if GPU support is required)
  • pybind11 (optional; mandatory if Interfaces to C++ and Python3 are required)

CMake Options:

  • SPGLIBDIR: Directory where spglib library is found. If not specified it look in the standard paths.
  • GPU: Set to ON to allow for GPU acceleration
  • OMP5: This indicates that your compiler fully supports OMP standard 5.0, which allows for complex loop offloading.
  • MAGMA_DIR: If GPU is ON, this option provides the path to MAGMA directory (install it with make)
  • INTERFACES: If ON, create interface for C++ and Python (this last using pybind11)
  • PYBIND_CMAKE_DIR: If INTERFACES is ON, this provides the path to PYBIND11 CMake file; in case you installed it via pip (i.e. pip3 install --user pybind11 ; pip3 install "pybind11[global]" --user) it will be located in "~/.local/share/cmake/pybind11".

Supported compilers and libraries versions

The library has been compiled and tested using: ifort 2021.3.0, icc 2021.3.0, pybind 2.11.1, Python 3.7.10, MAGMA 2.7.2, spglib 2.1.0.

Testing:

The test suit is provided via CTest, to run the test cases, go to test folder and execute "ctest".

Documentation:

The documentation is build using Doxygen. To compile it run "make doc".

About

A library providing tools for the computation of the inverse dielectric matrix

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published