README Profess@Quantum-ESPRESSO interface vers. 2.0.1 based on Profess vers. 3.0 and Quantum-Espresso vers. 5.2.1 Univ. Florida orbital-free DFT for warm dense matter goup README last revised: 12 JUN 2017 New in 2.0.1 version: * Known problem of getting stuck with "line step"=0.0 value during molecular dynamics runs is resolved * Compatibility with our KGEC package, now KGEC could be compiled with Profess@Quantum-ESPRESSO, otherwise the functionality is exactly the same as in 2.0 I. Description ============== This package provides patches to build the Profess@Quantum-ESPRESSO interface and modified version of Profess. Author: Valentin V. Karasiev Tester and editor: Sam Trickey Licensure: GNU GPL Modifications of Profess include: --------------------------------- - Finite-T non-interacting free-energy functionals, among them: Thomas-Fermi, VT84F and KST2 - Implementation of XC free-energy functionals: KSDT restricted path integral Monte-Carlo (RPIMC) based (Ref. 5 below) and Perrot-Dharma-wardana 2000 Profess@Quantum-ESPRESSO interface includes: -------------------------------------------- - Software coupling Profess and Quantum-ESPRESSO which permits use of OFDFT forces from Profess to drive molecular dynamics simulations in Quantum- ESPRESSO. - Modified part of Kohn-Sham code PWscf includes implementation of the same XC free-energy functionals as listed above: KSDT restricted path integral Monte-Carlo (RPIMC) based, Perrot-Dharma-wardana (1984 and 2000). II. Main references =================== -1- "Born - Oppenheimer interatomic forces from simple, local kinetic energy density functionals", V.V. Karasiev, S.B. Trickey, and Frank E. Harris, Journal of Computer-Aided Materials Design 13, 111 - 129 (2006). -2- "Properties of constraint-based single-point approximate kinetic energy functionals", V. V. Karasiev, R. S. Jones, S. B. Trickey, and Frank E. Harris, Physical Review B 80, 245120 (2009); erratum Physical Review B 87, 239902 (2013) -3- "Generalized-gradient-approximation noninteracting free-energy functionals for orbital-free density functional calculations", Valentin V. Karasiev, Travis Sjostrom, and S. B. Trickey, Physical Review B 86, 115101 (2012). -4- "Nonempirical generalized gradient approximation free-energy functional for orbital-free simulations", Valentin V. Karasiev, Debajit Chakraborty, Olga A. Shukruto, and S. B. Trickey, Physical Review B 88, 161108(R) (2013). -5- "Accurate homogeneous electron gas exchange-correlation free energy for local spin-density calculations", Valentin V. Karasiev, Travis Sjostrom, James Dufty, and S.B. Trickey, Physical Review Letters 112, 076403 (2014). -6- "Innovations in finite-temperature density functionals", V.V. Karasiev, T. Sjostrom, D.Chakraborty, J.W. Dufty, F.E. Harris, K. Runge, and S.B. Trickey, chapter in "Computational Challenges in Warm Dense Matter", F. Graziani et al. eds., Springer Verlag (2014); 61-75. -7- "Finite-temperature orbital-free DFT molecular dynamics: Coupling Profess and Quantum Espresso", V.V. Karasiev, T. Sjostrom, and S.B. Trickey, Computer Physics Communications 185, 3240-3249 (2014). - See also references in the original Profess and Quantum-Espresso packages. - Also see http://www.qtp.ufl.edu/ofdft for occasional updates, bug fixes, etc. III. Pre-requisites and convention ================================== Linux with Bourne-again shell (bash) Intel ifort and icc compilers Open MPI for parallel compilation Note about Intel compiler versions: Package compiled with Intel compiler vers. 14.0.3 and openmpi vers. 1.8.6 exhibits a memory leak problem when used for Kohn-Sham MD runs, and it frequently terminates with "Bus error" message when used for Orbital-free MD. Compilation with Intel compiler vers. 14.0.0 and openmpi vers. 1.6.5 provides stable executables. Intel compiler vers. 16.0.0 and openmpi vers. 1.10.2 also produce stable executables. Other versions and compilers not tested. Convention: in paths, the tilde (~) indicates (and is translated by bash as) your home directory: ~/OFQE2.0.1 is /home//OFQE2.0.1 If you install the package in a different directory, change "~" to IV. Distribution and File list ============================== Distribution consists of this README and a tarball, ProfAtQE2.0.1.tgz containing the following files, all in a directory named OFQE2.0.1 : patches/espresso-5.2.1-5.2.1m5.diff Patch for Quantum-ESPRESSO v.5.2.1 patches/PROFESS3.0-PROFESS3.0m5B.diff Patch for Profess v.3.0 patches/fftw-2.1.5-profftw-2.1.5.diff Patch for fftw-2.1.5 examples-OFDFT Examples to run OFDFT Profess examples-PROFESS@QE Examples to run Profess@Quantum-ESPRESSO PP Directory with pseudopotential files, PP/recpot - local in reciprocal space, PP/UPF - local and PAW (in UPF format) transferable to high material density. tools Directory with script(s) for extracting key output download Directory (empty) for downloading 3rd party sources lib Directory (empty) to install libraries V. Download =========== Download the following files and place them in the directory ~/OFQE2.0.1/download : - Profess 3.0 (catalog ID AEBN_v3_0) from http://www.cpc.cs.qub.ac.uk/ - Quantum-ESPRESSO 5.2.1 (espresso-5.2.1.tar.gz file) direct links to the files: http://www.qe-forge.org/gf/download/frsrelease/199/855/espresso-5.2.1.tar.gz - FFTW 2.1.5 (fftw-2.1.5.tar.gz file) from direct link http://www.fftw.org/fftw-2.1.5.tar.gz or from http://www.fftw.org/ NOTE: required only for parallel compilation of Profess@Quantum-Espresso interface - FFTW 3.3.4 (fftw-3.3.4.tar.gz file) from direct link http://www.fftw.org/fftw-3.3.4.tar.gz or from http://www.fftw.org/download.html - LAPACK 3.5.0 (lapack-3.5.0.tgz file) from direct link http://www.netlib.org/lapack/lapack-3.5.0.tgz or from http://www.netlib.org/lapack/ NOTE: required only for compilation of modified Profess as a stand-alone package - LibXC 2.0.1 (libxc-2.0.1.tar.gz file) from direct link http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.0.1.tar.gz or from http://www.tddft.org/programs/octopus/wiki/index.php/Libxc:download VI. Applying patches ==================== Place the distribution file ProfAtQE2.0.1-yyyy.mm.dd.tgz in the installation directory (home directory in our case), unpack all files and apply patches: tar xzvf ProfAtQE2.0.1-yyyy.mm.dd.tgz cd ~/OFQE2.0.1/lib tar xzvf ../download/fftw-2.1.5.tar.gz tar xzvf ../download/fftw-3.3.4.tar.gz tar xzvf ../download/lapack-3.5.0.tgz tar xzvf ../download/libxc-2.0.1.tar.gz mv fftw-2.1.5 profftw-2.1.5 cd profftw-2.1.5 patch -p1 < ../../patches/fftw-2.1.5-profftw-2.1.5.diff cd ../.. tar xzvf download/aebn_v3_0.tar.gz tar xzvf download/espresso-5.2.1.tar.gz mv espresso-5.2.1 espresso-5.2.1m5 cd espresso-5.2.1m5 patch -p1 < ../patches/espresso-5.2.1-5.2.1m5.diff cd .. mv PROFESS3.0 PROFESS3.0m5B cd PROFESS3.0m5B patch -p1 < ../patches/PROFESS3.0-PROFESS3.0m5B.diff Choose either parallel (Sect. VII) or serial (Sect. VIII) compilation. If both compilations are to be done at once, be sure to execute "make clean" each time and be sure to install the two Profess@Quantum-ESPRESSO interfaces in separate directories, for example ~/OFQE2.0.1/espresso-5.2.1m5 and ~/OFQE2.0.1/espresso-5.2.1m5_ser or use different root directories for parallel and serial compilation, for example ~/OFQE2.0.1 and ~/OFQE2.0.1_ser VII. Parallel compilation ========================= (Be sure that modules required for parallel compilation/execution like openmpi etc. are loaded, e.g. "module load intel openmpi", request interactive session and load the following modules on HighPerGator at UF: srun -p hpg2-dev --time=03:00:00 --mem-per-cpu=3600 --pty -u bash -i module load intel/2016.0.109 openmpi/1.10.2 or module load intel/2017.1.132 openmpi/1.10.2 (*** not tested) NOTE: compilation of the LAPACK library with intel/2017.1.132 gets stuck at one of the internal tests running together with compilation. To avoid that, replace "-O2" with "-O1" or with "-O3" in make.inc, see instructions below. ) A1. Compile fftw-3.3.4 library: ------------------------------- cd ~/OFQE2.0.1/lib/fftw-3.3.4 ./configure --prefix="`pwd`/../fftw-3.3.4_intel_mpi" CC=mpicc F77=mpif77 --enable-mpi make clean make make install A2. Compile profftw library: ---------------------------- cd ~/OFQE2.0.1/lib/profftw-2.1.5 ./configure --prefix="`pwd`/../profftw-2.1.5_intel_mpi" CC=mpicc F77=mpif77 --enable-mpi make clean make make install B. Compile lapack library: -------------------------- required only for compilation of modified Profess as a stand-alone package cd ~/OFQE2.0.1/lib cp -R lapack-3.5.0 lapack-3.5.0_intel_mpi cd lapack-3.5.0_intel_mpi cp make.inc.example make.inc (*edit make.inc: replace "gfortran" with "mpif90" comment or remove "-frecursive" option in two places uncomment 25th line: "TIMER = EXT_ETIME" comment 29th line: "TIMER = INT_ETIME" if intel/2017.1.132 compiler is used, replace also "-O2" with "-O1" or with "-O3" ) cd BLAS/SRC make cd ../.. make C. Compile libxc-2.0.1 library: ------------------------------- cd ~/OFQE2.0.1/lib/libxc-2.0.1 ./configure --prefix="`pwd`/../libxc-2.0.1_intel_mpi" CC=mpicc FC=mpif90 make clean make make install D. Compile OFDFT library: ------------------------- cd ~/OFQE2.0.1/PROFESS3.0m5B rm -rf Makefile ln -s Makefile_intel_3_lib Makefile make clean (**NOTE! This will remove previous installations of Profess, serial or parallel) (**instead of "make clean" one can just remove "obj" and/or "pobj" subdirectories) make parallel E. Compile Profess@Quantum-ESPRESSO: ------------------------------------- cd ~/OFQE2.0.1/espresso-5.2.1m5 ./configure MPIF90=mpif90 CC=mpicc F77=mpif77 cd PW/src rm -rf Makefile ln -s Makefile_WithOFDFT_par_m5d_explicit_lib Makefile cd ../tools rm -rf Makefile ln -s Makefile-VVK Makefile cd ../../PP/src rm -rf Makefile ln -s Makefile-VVK Makefile cd ../.. (**build PWscf(pw.x) and Postprocessings) make clean make pw make pp F. Compilation of modified Profess as a stand-alone package (recommended): -------------------------------------------------------------------------- cd ~/OFQE2.0.1/PROFESS3.0m5B rm -f Makefile ln -s Makefile_intel_3 Makefile make clean (**NOTE! This will remove previous installations of Profess, serial or parallel) (**instead of "make clean" one can just remove "obj" and/or "pobj" subdirectories) make parallel If you intend only parallel compilation, skip to Sect. IX. "Run Examples ..." VIII. Serial compilation ======================== (Be sure that compiler modules are loaded, e.g. "module load intel", request interactive session and load the following modules on HighPerGator at UF: srun -p hpg2-dev --time=03:00:00 --mem-per-cpu=3600 --pty -u bash -i module load intel/2016.0.109 or module load intel/2017.1.132 (*** not tested) NOTE: compilation of the LAPACK library with intel/2017.1.132 gets stuck at one of the internal tests running together with compilation. To avoid that, replace "-O2" with "-O1" or with "-O3" in make.inc, see instructions below. ) A. Compile fftw-3.3.4 library: ------------------------------ cd ~/OFQE2.0.1/lib/fftw-3.3.4 ./configure --prefix="`pwd`/../fftw-3.3.4_intel" CC=icc F77=ifort make clean make make install B. Compile lapack library: -------------------------- required only for compilation of modified Profess as a stand-alone package cd ~/OFQE2.0.1/lib cp -R lapack-3.5.0 lapack-3.5.0_intel cd lapack-3.5.0_intel cp make.inc.example make.inc (*edit make.inc: replace "gfortran" with "ifort" in two places comment or remove "-frecursive" option in two places uncomment 25th line: "TIMER = EXT_ETIME" comment 29th line: "TIMER = INT_ETIME" if intel/2017.1.132 compiler is used, replace also "-O2" with "-O1" or with "-O3" ) cd BLAS/SRC make cd ../.. make C. Compile libxc-2.0.1 library: ------------------------------- cd ~/OFQE2.0.1/lib/libxc-2.0.1 ./configure --prefix="`pwd`/../libxc-2.0.1_intel" CC=icc FC=ifort make clean make make install D. Compile OFDFT library: ------------------------- cd ~/OFQE2.0.1/PROFESS3.0m5B rm -rf Makefile ln -s Makefile_intel_3_lib Makefile make clean (**NOTE! This will remove previous installations of Profess, serial or parallel) (**instead of "make clean" one can just remove "obj" and/or "pobj" subdirectories) make E. Compile Profess@Quantum-ESPRESSO interface: ----------------------------------------------- cd ~/OFQE2.0.1/espresso-5.2.1m5 ./configure MPIF90=ifort CC=icc F77=ifort make clean cd PW/src rm -rf Makefile ln -s Makefile_WithOFDFT_seq_m5d_explicit_lib Makefile cd ../tools rm -rf Makefile ln -s Makefile-VVK_seq Makefile cd ../../PP/src rm -rf Makefile ln -s Makefile-VVK_seq Makefile cd ../.. (**build PWscf(pw.x) and Postprocessings) make clean make pw make pp F. Compilation of modified PROFESS as a stand-alone package (recommended): -------------------------------------------------------------------------- cd ~/OFQE2.0.1/PROFESS3.0m5B rm -f Makefile ln -s Makefile_intel_3 Makefile make clean (**NOTE! This will remove previous installations of Profess, serial or parallel) (**instead of "make clean" one can just remove "obj" and/or "pobj" subdirectories) make IX. Run examples with modified Profess ====================================== remark: for interactive runs a stack size change may be required: ulimit -s unlimited Use SLURM scripts (*.slrm) or bash scripts (*.sh) to run examples. Sample output directories (only output from parallel runs) could be found in "sampleoutput" subdirectories. ---------------------------------------------------------------- A. fcc-Al static lattice (Profess alone) calculation of energy vs. lattice constant for the VT84F free-energy and the LDA XC functionals at electronic temperature T_el=100K: ---------------------------------------------------------------- cd ~/OFQE2.0.1/examples-OFDFT/Al.--locmodreg_rc1.15-qtpHA/scripts Modify and submit Al4-fcc_1X1X1r0.slrm job, or sh Al4-fcc_1X1X1r0.sh for serial interactive run. extract data: cd ../Al-fcc_1X1X1r0-lda-ntn-500eV-two-T100K sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh VT84F+XC.T100 and find results in the V-E-P-Ax-Rho.VT84F+XC.T100.data file. ------------------------------------------------------------ B. sc-H static lattice (Profess alone) calculation of energy vs. lattice constant for the VT84F, APBEF, PBETWF, KST2, SGA and TF free-energy and the LDA XC functionals at electronic temperature T_el=100K: ------------------------------------------------------------ cd ~/OFQE2.0.1/examples-OFDFT/H.pz-locmodreg_rc0.25-qtp/scripts Modify and submit H-sc_2X2X2r0.slrm job, or sh H-sc_2X2X2r0.sh for serial interactive run. extract data: cd ../H-sc_2X2X2r0-lda-ntn-3000eV-two-T100K sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh VT84F+XC.T100 sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh APBEF+XC.T100 sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh PBETWF+XC.T100 sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh KST2+XC.T100 sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh TSGA+XC.T100 sh ../../../tools/extr-V-E-P-Ax-Rho-profess.sh TTF+XC.T100 find results here: V-E-P-Ax-Rho.VT84F+XC.T100.data V-E-P-Ax-Rho.APBEF+XC.T100.data V-E-P-Ax-Rho.PBETWF+XC.T100.data V-E-P-Ax-Rho.KST2+XC.T100.data V-E-P-Ax-Rho.TSGA+XC.T100.data V-E-P-Ax-Rho.TTF+XC.T100.data X. Run OF-DFT molecular dynamics with Profess@Quantum-ESPRESSO ============================================================== -------------------------------------------------------------- A. Hydrogen, 128 atoms, Rho_H=0.983 g/cm^3, T=125000K, OFDFT=TF(Fs)+KSDT(XC), 100 MD steps starting from simple-cubic positions: -------------------------------------------------------------- cd ~/OFQE2.0.1/examples-PROFESS@QE/H128.md.verl.andr.OFDFT/scripts Modify and submit md-H128.TTF.R0.983.T125kK.slrm job, or sh md-H128.TTF.R0.983.T125kK.sh for serial interactive run. cd ../TTF+ksdt.ecut3000.R0.983.T125000.stn.nr20 remarks: during calculation, in this directory the most recent MD step can be monitored via files pos.last (top line), ofdft.out, and H.*.out find results here: H.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.out modified QE output md.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.xyz cartesian fractional positions of all atoms at each MD step ofdft.err Profess error messages if any (should be empty) ofdft.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.out Profess (as UF modified) output pwscf.msd.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.dat QE mean square displacements pwscf.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.md QE most recent MD step information pwscf.rdf.R0.983.T125000.TTF+ksdt.ecut3000.NMDSTEP100.dt56as.nr20.dat QE radial distribution function Remark: though the sample output for MD simulation examples is provided, the reproduced data should be in agreement on the first MD step only due to the use of random number generator during MD simulations. ------------------------------------------------------------------ B. Hydrogen, 128 atoms, Rho_H=0.983 g/cm^3, T=125000K, OFDFT=VT84F(Fs)+KSDT(XC), [Refs. 4, 5], 10 MD steps starting from the last configuration in previous simulation stored in pos.last-TTF.R0.983.T125000.101steps file: ------------------------------------------------------------------ cd ~/OFQE2.0.1/examples-PROFESS@QE/H128.md.verl.andr.OFDFT/scripts Modify and submit md-H128.VT84F.R0.983.T125kK.slrm job, or sh md-H128.VT84F.R0.983.T125kK.sh for serial interactive run. cd ../VT84F+ksdt.ecut3000.R0.983.T125000.stn.nr20 find results here: files analogous with those in preceding example ------------------------------------------------------------------- C. Hydrogen, 128 atoms, Rho_H=0.983 g/cm^3, T=62500K, Kohn-Sham MD with T-dependent XC (KS+KSDT(XC)), [Ref. 5], Gamma point only, 5 MD steps starting from the last configuration in OFDFT=TF(Fs)+KSDT(XC) simulation stored in pos.last-TTF.R0.983.T125000.101steps file: ------------------------------------------------------------------- cd ~/OFQE2.0.1/examples-PROFESS@QE/H128.md.verl.andr.OFDFT/scripts Modify and submit md-H128.KS.R0.983.T62.5kK.slrm job, or sh md-H128.KS.R0.983.T62.5kK.sh for serial interactive run. cd ../H128-R0.983.T62500.nr20 find results here: files analogous with those in preceding examples except the OFDFT output. additional QE Kohn-Sham output (eigenvalues and occupation numbers for the last (or most recent) MD step) can be found here: pwscf.save.R0.983.T62500.KPGxGxG.NBND544.ECUT75.0.ksdt.NMDSTEP5.dt80as.nr20/K00001/eigenval.xml (after execution) pwscf.save/K00001/eigenval.xml (during execution) ------------------------------------------------------------------ D. Aluminum, 108 atoms, Rho_Al=2.37 g/cm^3, T=20000K, OFDFT=VT84F(Fs)+KSDT(XC), Gamma-point only, 10 MD steps starting from the fcc configuration ------------------------------------------------------------------ cd ~/OFQE2.0.1/examples-PROFESS@QE/Al108.md.verl.andr.--locmodreg_rc1.15-qtpHA.OFDFT/scripts Modify and submit md-Al108R2.37.T20kK.slrm job, or sh md-Al108R2.37.T20kK.sh for serial interactive run. cd ../VT84F+ksdt.ecut500.R2.37.T20000.ntn.nr10 find results here: files analogous with those in preceding examples --end--