CP2K

CP2K is a quantum chemistry and solid state physics software package running on graphics processing units and thousands of processing units. It is open-source and allows simulations, spectroscopy, vibrational analysis and energy minimization on a vast variety of theory levels.

3166
mentions
8
contributors
Get started
19569 commitsLast commit ≈ 5 days ago1020 stars432 forks

Cite this software

Description

Features

CP2K allows simulations of

  • molecules
  • surfaces
  • liquids
  • crystals
  • biological systems

The supported levels of theory are

  • DFT (LDA, GGA, meta-GGA, hybrid, double-hybrid), Hartree-Fock, RPA, MP2, GW, BSE
  • Subsystem embedding
  • Semiempirical methods (AM1, PM3, PM6, RM1, MNDO, ...) and DFTB
  • Classical force fields (AMBER, CHARMM, Allegro, NequIP, DeepMD, …)

The supported types of simulations are

  • Molecular dynamics (Ab-initio-Born-Oppenheimer dynamics)
  • Metadynamics
  • Monte Carlo simulations
  • Ehrenfest dynamics
  • Core-level spectroscopy
  • Vibrational analysis
  • Transition state optimization (NEB, dimer method)
  • Energy minimization

For its high-level methods, CP2K employs pseudopotentials of the Goedecker-Teter-Hutter-type, Gaussian basis sets to represent orbitals and plane-wave basis sets to represent densities. All-electron calculations are available within the GAPW approach. K-point calculations are available for a selection of methods. Plane-wave based calculations are also available using the SIRIUS library.

CP2K is written in Fortran 2008 and can be run efficiently in parallel using a combination of multi-threading (OpenMP), MPI, and CUDA or HIP. It is freely available under the GPL license (performance critical code under BSD3).

Related Projects

DBCSR
For the exploitation of sparsity, CP2K employs the block-compressed sparse-row format as implemented in the DBCSR library. Formerly, an in-house library, it evolved into an independent project available on Github. It supports matrix-matrix multiplication and also has a tensor interface.

Information for Users

CP2K offers an extensive documentation. The official manual provides information on the installation process, a description of the different methods and an input reference. The CP2K Google group offers help for users by users and developers. Bug reports and feature request should be submitted to the CP2K Github repository.

Information for Developers

CP2K is completely open-source on Github. Bug fixes, new features and improvements to the documentation should be submitted as Pull requests on the CP2K Github page. For larger development projects within CP2K or with CP2K as a library, contact us (Thomas Kühne or Frederick Stein) for more support.

Logo of CP2K
Keywords
Programming languages
  • Fortran 90%
  • C 7%
  • Python 1%
  • Shell 1%
  • Other 1%
License
</>Source code
Packages
hub.docker.com

Participating organisations

University of Zurich
Center for Advanced Systems Understanding
Paul Scherrer Institute
Paderborn University

Reference papers

Mentions

Contributors