====== How to perform DFT+NEGF transport calculations with CP2K and OMEN ====== This tutorial aims at providing a guide on how to run first-principles quantum transport calculations using CP2K and [[http://www.nano-tcad.ethz.ch/|OMEN]], an NEGF / tight-binding based quantum transport simulator. CP2K-OMEN is particularly suitable for large-scale calculations of systems consisting of several thousands of atoms [1]. See [2-4] for more information on the algorithms. To perform transport simulations, the latest version of OMEN that is integrated with CP2K needs to be installed on your local machine. The integration has been made in a plugin manner [3]. The code can be obtained via the [[https://github.com/saschabrueck/dft-transport|project's Github page]]: > 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. In case manual installation is desired, the script is well-documented with the steps that are needed to be taken. ===== 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 named ''transport'' : > 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: [[inp>FORCE_EVAL/DFT/TRANSPORT|TRANSPORT]]. ===== Example ===== An example input file, ''gnr.inp'', for a graphene nanoribbon system composed of 96 atoms can be found [[https://github.com/saschabrueck/dft-transport/tree/master/tests/input_files/gnr|here]]. ===== References ===== - S. Brück, M. Calderara, M. H. Bani-Hashemian, J. VandeVondele, and M. Luisier. //Towards Ab-Initio Simulations of Nanowire Field-Effect Transistors//. Proceedings of the International Workshop on Computational Electronics (IWCE), June 2014, Paris, France. [[doi>10.1109/IWCE.2014.6865831]]. - S. Brück, M. Calderara, M. H. Bani-Hashemian, J. VandeVondele, and M. Luisier. //Efficient Algorithms for Large-Scale Quantum Transport Calculations//. The Journal of Chemical Physics 147(7): 074116, Aug. 2017. [[doi>10.1063/1.4998421]]. - M. H. Bani-Hashemian, //Large-Scale Nanoelectronic Device Simulation from First Principles//. PhD thesis, ETH Zurich, 2016. [[doi>10.3929/ethz-a-010811338]]. - S. Brück, //Ab-initio Quantum Transport Simulations for Nanoelectronic Devices//. PhD thesis, ETH Zurich, 2017. [[doi>10.3929/ethz-b-000226622]].