0% found this document useful (0 votes)
89 views

CP2K: Introduction and Orientation: 4 CECAM CP2K Tutorial, 31 Aug - 4 Sep 2015 Iain Bethune Ibethune@epcc - Ed.ac - Uk

Cp2k introduction

Uploaded by

Dr. Dinesh Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

CP2K: Introduction and Orientation: 4 CECAM CP2K Tutorial, 31 Aug - 4 Sep 2015 Iain Bethune Ibethune@epcc - Ed.ac - Uk

Cp2k introduction

Uploaded by

Dr. Dinesh Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

CP2K:

INTRODUCTION AND
ORIENTATION
4th CECAM CP2K Tutorial, 31 Aug – 4 Sep 2015

Iain Bethune
[email protected]
Outline
•  CP2K Overview
•  Project History

•  CP2K Features

•  CP2K Information

•  Obtaining CP2K

•  CP2K exercises
CP2K Overview

“CP2K is a program to perform atomistic and molecular


simulations of solid state, liquid, molecular, and biological
systems. It provides a general framework for different
methods such as e.g., density functional theory (DFT) using
a mixed Gaussian and plane waves approach (GPW) and
classical pair and many-body potentials.”
From www.cp2k.org (and original home page from 2004!)
CP2K Overview •  Many force models:
•  Classical
•  DFT (GPW, GAPW + vDW)
•  LS-DFT
•  Hybrid Hartree-Fock
•  post-HF (MP2, RPA)
•  Combinations (QM/MM, mixed)
•  Simulation tools:
•  MD (various ensembles)
•  Monte Carlo
•  Minimisation (GEO/CELL_OPT)
•  Properties (Spectra, excitations …)
•  Open Source
•  GPL, www.cp2k.org
•  1m loc, ~2 commits per day
•  ~10 core developers
CP2K History
•  25th June 2001 – CP2K repository online at berliOS.de
•  Merger of Quickstep (DFT) + FIST (MD) codes
•  Jürg Hutter, Matthias Krack, Chris Mundy

•  Oct 2011 – First ‘official’ release


•  CP2K 2.2

•  14 years on…
•  1m lines of code, ~16k commits
•  25 developers + many contributors
•  100s of users
•  Fully open-source (GPL) Image from Jürg Hutter
CP2K Features
Gaussian basis:
•  QUICKSTEP DFT: Gaussian and Plane WavesofMethod
The sparsity H and S
(VandeVondele et al, Comp. Phys. Comm.,S 2005)
=∫ ϕ (r)ϕ (r )dr
αβ α Gaussian basis:
β

The sparsity of Hϕ (r)


H α β =∫ ϕα (r ) v(r)ϕβ (r)dr and S
•  Advantages of atom-centred basis (primary) S S=
The sparsity pattern of ∫ ϕH (r)ϕ (r )dr
and αβ
ϕ (r)
α β
α β

depends on the basis and the


•  Density, KS matrices are sparse spatial location of theHatoms,∫
α β = but
ϕα not
(r ) v(r)ϕβ (r)dr
on the chemical properties of the ϕα (r) ϕβ (r)
system in GGA DFT.The sparsity pattern of S and H
•  Advantages of plane-wave basis (auxiliary)
depends on the basis and the
spatial location of the atoms, but not S αβ
on the chemical properties of the
system in GGA DFT.
•  Efficient computation of Hartree potential S αβ

•  Efficient mapping between basis sets The overlap (integral of the product) rapidly
decays with the spatial separation of the basis
•  -> Construction of the KS Matrix is ~O(n) functions.
The overlap (integral of the product) rapidly
decays with the spatial separation of the basis
functions.

•  Orbital Transformation Method (VandeVondele & Hutter, J. Chem.


Phys., 2003)
•  Replacement for traditional diagonalisation to orthogonalise wave
functions (non-metallic systems only)
•  Cubic scaling but ~10% cost
CP2K Features
•  QM/MM (Laino et al, JCTC, 2005, 2006)
•  Fully periodic, linear scaling electrostatic coupling

•  Gaussian and Augmented Plane Waves (Iannuzzi et al,


CHIMIA, 2005)
•  Partitioning the electronic density -> all-electron calculations

•  Hartree-Fock Exchange (Guidon et al, JCP, 2008)


•  Beyond local DFT (later MP2, RPA…)
•  Auxiliary Density Matrix Method (Guidon et al, JCTC, 2010)

•  Linear Scaling DFT (VandeVondele, Borstnik & Hutter, JCTC, 2012)


•  Fully linear scaling condensed-phase DFT, up to ~1m atoms
CP2K Features
•  And LOTS more…
•  Recent review paper:
Hutter et al, WIREs Comput Mol Sci 2014,
4:15–25
http://dx.doi.org/10.1002/wcms.1159

•  Some highlight applications:


•  http://www.cp2k.org/science

•  All for free!


•  Please cite the references
•  Please give feedback / patches / feature DSSC: see Shiffmann et al, PNAS, 2010
requests
•  Please spread the word about CP2K!
CP2K Information
•  CP2K Website (http://www.cp2k.org)
•  Everything else is linked from here
•  Now a wiki – so feel free to contribute!

•  CP2K Sourceforge site (http://sf.net/p/cp2k) :


•  Contains source code repository (SVN)
•  public read-only, read-write access to developers
•  Bug reporting
•  Source tarball / binary downloads
CP2K Information
•  CP2K Discussion Group (http://groups.google.com/group/cp2k)
•  Email / web forum
•  Users and developers
•  Searchable history

•  CP2K Input reference manual (http://manual.cp2k.org)


•  Documents every possible CP2K input keyword
•  Mostly with helpful descriptions
•  More later…
Obtaining CP2K
•  Which version?
•  Current release 2.6 (Dec 2014) / 2.6.1 (May 2015)
+ stable, major bug-fixes are back-ported
+ source and binaries available from http://www.cp2k.org/download
+ available for Ubuntu / Debian / Fedora via package managers
-  missing latest features, minor bugs are not always fixed

http://www.cp2k.org/version_history
•  SVN trunk version 2.7
+ latest features, fixes, performance improvements
+ actively developed
- bugs may exist (see dashboard.cp2k.org)
- must be obtained from SVN and compiled from source
Obtaining CP2K
•  CP2K download contents:
•  README, COPYRIGHT, INSTALL
•  src – source code (mostly Fortran 03, a little C++)
•  makefiles – To build CP2K
•  arch – machine-specific options files
•  data – standard data files (basis sets, PPs …)
•  tests – over 2700 input files!
•  tools – mostly for developers + cubecruncher
•  After building:
•  lib – CP2K internal libraries
•  obj – compiled object files
•  exe – CP2K binaries
CP2K Exercises
•  Various exercises are available from:
•  http://www.cp2k.org/exercises
•  See “CECAM 4th CP2K Tutorial” for this week
•  Also older exercises
•  Mostly ‘worked examples’ from system setup and calculations to
analysis / visualisation of results

•  For specific ‘HowTo’ guides see:


•  http://www.cp2k.org/tutorials
•  Guides to basic (and some advanced!) CP2K skills
•  e.g. converging CUTOFF for QS calculations
CP2K Exercises
•  The CP2K tests directory
•  Great source for example input files for all kinds of calculations
•  Grouped (mostly) logically:
•  QS/regtest-gpw-1 – Quickstep GPW calculations
•  QS/regtest-dm-ls-scf – Quickstep using linear scaling SCF
•  Fist/regtest-opt – Geometry and Cell optimisations using
classical potentials
•  SE/regtest-* - various semi-empirical calculations

•  WARNING:
•  Tests are designed to run quickly so may not produce converged or
accurate outputs! Check parameters for your system…
CP2K: Introduction and Orientation

Questions?
BASICS OF CP2K
CALCULATIONS
Iain Bethune ([email protected])
Overview
•  How to run CP2K

•  CP2K Input file


•  The Basics
•  The How – FORCE_EVAL
•  The What – MOTION

•  Basis Sets and Pseudopotential libraries

•  CP2K Output
•  Controlling what gets written
•  Overview of an output file

•  Restarting a calculation
How to run CP2K
•  CP2K binaries:
•  cp2k.version where version is usually one of:
•  sopt – Serial, optimised
•  ssmp – Single process + symmetric multiprocessor (OpenMP)
•  popt – Parallel (MPI), optimised
•  psmp – Parallel (MPI) + symmetric multiprocessor (OpenMP)

•  Available from http://www.cp2k.org/download


•  Linux binaries (released versions)
•  Also in Linux package managers
•  Source code (released versions and latest trunk), GPL
•  May be pre-installed, e.g. NSCCS, ARCHER …
How to run CP2K
•  Basic command line options:
•  cp2k.sopt –i input_file –o output_file

•  By default, output goes to the standard output


•  Output to file appends (beware!)
•  Input file is the last argument if not otherwise specified

•  Other useful options:


•  cp2k.sopt –-version
•  cp2k.sopt –-check input_file
•  cp2k.sopt –-html-manual
•  cp2k.sopt --help
How to run CP2K
•  Typical files associated with a CP2K run:
•  Input (required):
•  e.g. H2O-32.inp (main input file, name and extension are arbitrary)
•  Optional inputs:
•  POTENTIAL (psuedopotential library)
•  BASIS_SET (basis set library)
•  Structure file (e.g. psf, xyz, crd …)
•  …
•  Outputs:
•  PROJECT-1.restart (input file to restart calculation)
•  PROJECT-pos-1.xyz (trajectory for MD or GEO_OPT)
•  PROJECT-1.ener (MD energies, temperature, cons. Q …)
•  PROJECT-1.cell (cell parameters for NPT MD or CELL_OPT)
•  PROJECT-RESTART.wfn (orbitals for restart)
CP2K Input file: The Basics
•  Full documentation available online:
•  http://manual.cp2k.org
•  Or generate with --html-manual

•  Sections – 13 (optional) top level sections


&BEGIN section_name [params]

&END [section_name]

•  Keywords
KEYWORD value
KEYWORD [ON|OFF] [YES|NO] [TRUE|FALSE] …
KEYWORD

•  Nesting
•  Sections may others sections and keywords
CP2K Input file: The Basics
•  Basic pre-processing syntax
@INCLUDE ‘filename’ – copy in text from file
@SET VAR value – define a variable
$VAR – replaced with variable value
@IF / @ENDIF – simple logic
! or # – comments

•  Units
•  Numerical entries have a default unit (see manual)
•  Specify other units by hand e.g.
ABC [nm] 100 100 100 (or bohr, default is angstrom)
EMAX_SPLINE [eV] 50 (or Ry, joule, default is hartree)
•  Also combinations e.g. [hartree*bohr^-2]
CP2K Input file: The Basics
•  GLOBAL section (required)
&GLOBAL
PROJECT H2O-32
RUN_TYPE MD
PRINT_LEVEL HIGH
&TIMINGS
THRESHOLD 0.000001
&END
WALLTIME 3600
&END GLOBAL
CP2K Input file: The How
•  FORCE_EVAL section (required)
&FORCE_EVAL
METHOD QS (or FIST, QMMM …)
&DFT

&END DFT
&SUBSYS

&END SUBSYS
&END FORCE_EVAL
CP2K Input file: The How
&DFT
BASIS_SET_FILE_NAME GTH_BASIS_SETS Basis and PP library files
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 280
REL_CUTOFF 30 Parameters for the realspace multi-grids
&END MGRID
&QS
EPS_DEFAULT 1.0E-12
WF_INTERPOLATION PS
Quickstep options
EXTRAPOLATION_ORDER 3
&END QS
&SCF
SCF_GUESS ATOMIC Control of SCF procedure, including
&OT ON
MINIMIZER DIIS minimisation scheme
&END OT
&PRINT
&RESTART OFF
&END
&END
&END SCF
&XC Exchange-Correlation Functional (LDA)
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
CP2K Input file: The How
&SUBSYS
&CELL Cell definition
ABC 9.8528 9.8528 9.8528
&END CELL
# 32 H2O (TIP5P,1bar,300K) a = 9.8528 Particle coordinates
&COORD
O 2.280398 9.146539 5.088696
O 1.251703 2.406261 7.769908 Could also @include an external file
O 1.596302 6.920128 0.656695 or parse other formats via
...
H 0.837635 8.186808 8.987268
&TOPOLOGY
H 8.314696 10.115534 2.212519 COORD_FILE_NAME
H 8.687134 8.667252 2.448452 &END TOPOLOGY
&END COORD
&KIND H
BASIS_SET TZV2P-GTH
POTENTIAL GTH-PADE-q1 Definitions of atomic kinds
&END KIND
&KIND O
BASIS_SET TZV2P-GTH
Could specify charge, mass …
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS
CP2K Input file: The What
•  MOTION section
&MOTION
&MD
ENSEMBLE NVE
STEPS 10
TIMESTEP 0.5
TEMPERATURE 300.0
&END MD
&END MOTION

•  Also used to control Geometry Optimisation, NEB, Monte Carlo, …


Basis Sets and PP libraries
•  CP2K uses Goedecker-Teter-Hutter, seperable
Pseudopotentials
•  Several sets of PPs and corresponding optimised basis sets are
available
•  See cp2k/data or online:
http://sourceforge.net/p/cp2k/code/HEAD/tree/trunk/cp2k/data

•  POTENTIAL, GTH_POTENTIALS
•  Wide range of PPs for at many elements - LDA (PADE), PBE, BLYP …

•  BASIS_SET, GTH_BASIS_SET, BASIS_MOLOPT


•  Various qualities / size of basis
•  Make sure Basis and PP match (functional and number of electrons)
•  Some documentation and references at head of each file
CP2K Output: Controlling what gets written
•  The PRINT_LEVEL keyword in &GLOBAL

•  SILENT, LOW, MEDIUM (default), HIGH, DEBUG

•  HIGH can give more information if you are interested


•  Also gives some per-process logging in parallel jobs
•  For long MD runs (e.g. classical), recommend using LOW

•  Fine grained control is available via print-keys


•  Most input sections contain a &PRINT sub-section
•  Each &PRINT sub-section has further subsections for each
quantity that may be printed
CP2K Output: Controlling what gets written
•  For example, the &PRINT section in &MOTION contains
&CELL
&FORCES
&TRAJECTORY
&VELOCITIES
...
•  Each section has parameters (and defaults) for which
print level it is output
•  &TRAJECTORY defaults to LOW
•  &VELOCITIES defaults to HIGH
CP2K Output: Controlling what gets written
•  Can also specify frequency of printing via &EACH sub-
section e.g.
&PRINT
&CELL
&EACH
MD 100
&END EACH
&END CELL
&END PRINT

•  Control over filenames, file formats etc. at each &PRINT


section
CP2K Output: Overview of an output file

Restarting a calculation
•  If you need to restart your job…
•  Hardware failure
•  Batch system time limit
•  Need more MD sampling
•  …

•  CP2K dumps a restart input file which can be directly re-


run
•  cp2k.sopt –i PROJECT-1.restart
•  Continuous numbering of MD steps
•  Stores all state variables (incl. extended system)
•  May want to use SCF_GUESS RESTART
Basics of CP2K Calculations

Questions?
BUILDING CP2K
Iain Bethune ([email protected])
Overview
•  Machine Access

•  Prerequisites
•  Environment
•  Libraries

•  Optional Libraries
•  Functionality
•  Performance

•  Arch files and compilation

•  Running example input files

•  Testing CP2K
Machine Access
•  Where can you run CP2K?
•  Own Laptop
•  Serial / OpenMP build

•  Institute workstation / cluster

•  UZH Guest logins


•  CP2K 2.6.0 pre-installed

•  ARCHER Guest accounts


•  Cray XC30 @ EPCC
•  CP2K 2.7 psmp pre-installed, massively parallel calculations
Prerequisites - Environment
•  POSIX-compliant OS
•  Linux, UNIX (e.g. AIX) …
•  Cygwin, Mac OS X also possible

•  Build tools
•  GNU Make, Python 2.x (or later)

•  Compilers
•  GNU gcc / gfortran 4.6 (or later)
•  Intel ifort 15.x
•  IBM XLF 14.1
Prerequisites - Libraries
•  BLAS & LAPACK (required)
•  Vendor-tuned libraries preferred (MKL, ACML, ESSL)
•  Free auto-tuned libraries (GotoBLAS, ATLAS)
•  Reference BLAS + LAPACK from Netlib (last resort, very slow!)

•  MPI & ScaLAPACK (required for MPI parallel build)


•  Usually provided by your cluster / HPC
•  Require MPI 2.x (3.x optional)
•  OpenMPI. MPICH, Intel MPI, Cray MPT all tested
•  ScaLAPACK provided by vendor maths libraries…
•  … or download from Netlib
•  -D__parallel -D__SCALAPACK
Prerequisites - Libraries
•  FFTW3 (Recommended)
•  CP2K has an inbuilt FFT implementation
•  FFTW3 will give much better performance
+ freely available
+ easy to compile / install
•  Enable using –D__FFTW3
Optional Libraries
•  Libxc
•  CP2K has various common XC functionals e.g. PBE, LDA, BLYP…
•  Many more available via libxc
•  Version 2.0.1 or later
•  -D__LIBXC2 or –D__LIBXC3

•  Libint
•  Required for all Hartree-Fock Exchange calculations
•  Version 1.1.4 only
•  -D__LIBINT
Optional Libraries
•  ELPA
•  Optimised diagonalisation routines
•  Build process optimises for specific architecture
•  < June 2014 version : -D__ELPA
•  >= June 2014 version : -D__ELPA2

•  All other libraries / options / flags


•  See http://www.cp2k.org/howto:compile
•  and cp2k/INSTALL

•  Auto-tuned performance libraries (libsmm, libgrid)


•  More on Friday…
Arch files and compilation
•  Compiler and architecture-specific options are given in an
‘arch file’
•  Examples in cp2k/arch
•  e.g. Linux_x86-64-gfortran.popt
•  Copy/customise for your environment

•  To build CP2K
•  in the cp2k/makefiles directory:
corresponding to arch file

make –j 4 ARCH=Linux-x86-64-gfortran VERSION=popt

parallel build Errors? Ask us!


Arch files and compilation
•  CP2K binary should be built in
•  cp2k/exe/<ARCH>/cp2k.<VERSION>

•  Very quick test:


cp2k.sopt –-version

•  MPI binaries (popt) should be run with mpirun


•  Maybe within a batch script?

•  Quick test
•  in the cp2k/tests/QS directory:

../../exe/ARCH/cp2k.sopt C.inp
Testing CP2K
•  CP2K comes with a suite of >2600 test input files

•  Good for checking you have correctly compiled CP2K


•  Tests that all enabled features of CP2K run
•  Most tests compare against a reference result

•  To execute regression tests:


•  Instructions in cp2k/tools/regtesting
•  Also online: http://cp2k.org/dev:regtesting
Testing CP2K
•  do_regtest script
•  SVN update, builds CP2K (--nosvn –nobuild to skip)
•  Runs all tests (in parallel, if possible)
•  Takes ~10 mins – a few hours
•  Summary of results and details of any failing tests

--------------------------------- Summary --------------------------------


Number of COMPILE warns 0
Test failed to complete
Number of FAILED tests 2
Number of WRONG tests 51 Test completed, but does not match reference
Number of CORRECT tests 2589
Number of NEW tests 0 Test completed for first time (and no reference
Total number of tests 2642 result available)
Testing CP2K
•  Automatic testing on 30+ different platforms
•  Test failures automatically reported to developers

•  Results available online at http://dashboard.cp2k.org

•  Check here when using an SVN trunk version


Building CP2K

Questions?

You might also like