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.