CP2K: Difference between revisions
| Line 57: | Line 57: | ||
* The '''skylake''' module activates the version built for newer compute nodes, such as '''cpu2019''' and newer. | * The '''skylake''' module activates the version built for newer compute nodes, such as '''cpu2019''' and newer. | ||
=== Activating natively installed CP2K === | |||
Before CP2K can be used, it has to be '''activated'''. | |||
To activate the specific version of CP2K, a corresponding '''module has to be loaded'''. Like this: | |||
<pre> | |||
$ cp2k | |||
bash: cp2k: command not found... | |||
$ module load cp2k/7.1-legacy | |||
... | |||
</pre> | |||
== CP2K Official Containers == | == CP2K Official Containers == | ||
Revision as of 18:10, 15 September 2025
Background
- Web site: https://www.cp2k.org/
- Downloads: https://www.cp2k.org/download
- Apptainer containers: https://github.com/cp2k/cp2k-containers
- GitHub Page: https://github.com/cp2k/cp2k
- GitHub Releases: https://github.com/cp2k/cp2k/releases/
CP2K is a quantum chemistry and solid state physics software package that can perform atomistic simulations of
solid state, liquid, molecular, periodic, material, crystal, and biological systems.
CP2K provides a general framework for different modeling methods such as DFT using the mixed Gaussian and plane waves approaches GPW and GAPW.
Supported theory levels include DFT, MP2, RPA, GW, tight-binding (xTB, DFTB),
semi-empirical methods (AM1, PM3, PM6, RM1, MNDO, ...),
and classical force fields (AMBER, CHARMM, ...).
CP2K can do simulations of molecular dynamics, metadynamics, Monte Carlo, Ehrenfest dynamics,
vibrational analysis, core level spectroscopy, energy minimization,
and transition state optimization using NEB or dimer method.
CP2K is written in Fortran 2008 and can be run efficiently in parallel
using a combination of multi-threading, MPI, and CUDA.
Types of Executable files
CP2K provides a single and only Makefile in cp2k/makefiles/ directory. The actual compilation settings are set in cp2k/arch/arch.version files. The arch file is included in the Makefile during a building run.
Conventionally, there are four versions:
- sopt - serial
- popt - parallel (only MPI) - recommended for general usage
- ssmp - parallel (only OpenMP)
- psmp - parallel (MPI + OpenMP)
CP2K on ARC
Various versions of CP2K software package is available on on ARC as
- Natively installed application -- the application is compiled and built on ARC using source codes.
- Apptainer containers -- Containerized version of CP2K is compiled by the developers and provided as-is for downloads.
Natively Installed CP2K
Currently there are several software modules on ARC that provide different versions of GROMACS. The versions differ in the release date as well as the CPU architecture the software is compiled for.
You can see them using the module command:
$ module avail cp2k ---------------------- /global/software/Modules/5.5.0/modulefiles ----------------------------------- cp2k/7.1-legacy cp2k/7.1-skylake
The names of the modules give hints on the specific version of CP2K they provide access to.
- The legacy module activates the version capable of running on older hardware, such as the legacy partition on ARC.
- The skylake module activates the version built for newer compute nodes, such as cpu2019 and newer.
Activating natively installed CP2K
Before CP2K can be used, it has to be activated. To activate the specific version of CP2K, a corresponding module has to be loaded. Like this:
$ cp2k bash: cp2k: command not found... $ module load cp2k/7.1-legacy ...
CP2K Official Containers
The more recent versions of CP2K installed on ARC have been built as Apptainer containers based off of the official docker containers available on Dockerhub.
The path to the directory with the container files is /global/software/cp2k/containers.
To see what versions of containerized CP2K are available, simply list the content of the corresponding directory:
$ ls -l /global/software/cp2k/containers/
Running commands from the containers
You can run a command from the container of your choice with the command line like this:
$ apptainer exec <container> <command> [command arguments]