This is an old revision of the document!
How to perform DFT+NEGF transport calculations with CP2K and OMEN
Please use our actively maintained NEGF implementation instead.
This tutorial aims at providing a guide on how to run first-principles quantum transport calculations using CP2K and OMEN, an NEGF / tight-binding based quantum transport simulator.
To perform transport simulations, the latest version of OMEN that is integrated with CP2K needs to be installed on your local machine. The code can be obtained via:
> git clone https://github.com/saschabrueck/dft-transport.git
For convenience, an installer script is distributed with the source code that installs CP2K-OMEN together with all the solvers/libraries that may be employed for calculations.
Compile and Run
In order to compile CP2K-OMEN, follow the following steps:
Compile CP2K
- Compile CP2K with target
libcp2k
, for example:> make -j N ARCH=Linux-x86-64-gfortran VERSION=popt libcp2k
Compile OMEN
- cd to
makefiles/
and using a sample.mk
file (e.g.arch1.mk
) write a.mk
file (say,myarch.mk
) according to your local installations. - cd to the source directory,
src/
, and run configure:> ./configure --with-arch=myarch
- Various solvers can be enabled by passing one or multiple of the following options to the configure script:
--with-pardiso --with-mumps --with-superlu --with-pexsi --with-splitsolve --with-fempoisson
- Now, running make in the current directory (
src/
) will create an executable namedtransport
:> make -j N
To run CP2K-OMEN
> mpirun -np N ./transport myinput.inp
The input file, myinput.inp
, should contain a &TRANSPORT
section. For more details, see the corresponding page on CP2K's Reference Manual: TRANSPORT.
Examples
more to come …