0% found this document useful (0 votes)
154 views48 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views48 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
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