cp2k/docs/getting-started/first-calculation.md

146 lines
4.8 KiB
Markdown

# Run a First Calculation
This page walks through a small single-point energy calculation for a water molecule. It uses the
{term}`Quickstep` module, the Gaussian and plane wave ({term}`GPW`) method, a molecular Gaussian
basis set, and Goedecker-Teter-Hutter ({term}`GTH`) pseudopotentials. The example is intentionally
small enough to run in a few seconds while still showing the parts of a typical CP2K input file that
matter for larger calculations.
## Input File
Save the following input as `h2o.inp`. The same file is also available as [](h2o.inp).
```text
&GLOBAL
PROJECT h2o
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
POTENTIAL_FILE_NAME GTH_POTENTIALS
&MGRID
CUTOFF 400
REL_CUTOFF 50
&END MGRID
&POISSON
PERIODIC NONE
PSOLVER MT
&END POISSON
&SCF
EPS_SCF 1.0E-6
MAX_SCF 50
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
PERIODIC NONE
&END CELL
&COORD
O 5.0000 5.0000 5.0000
H 5.7586 5.0000 5.5043
H 4.2414 5.0000 5.5043
&END COORD
&KIND O
BASIS_SET DZVP-MOLOPT-GTH
POTENTIAL GTH-PBE-q6
&END KIND
&KIND H
BASIS_SET DZVP-MOLOPT-GTH
POTENTIAL GTH-PBE-q1
&END KIND
&END SUBSYS
&END FORCE_EVAL
```
## Running CP2K
Run the calculation with one of the installed CP2K binaries:
```bash
OMP_NUM_THREADS=1 cp2k.psmp -i h2o.inp -o h2o.out
```
The executable name depends on how CP2K was built:
| executable | meaning |
| ----------- | --------------------------- |
| `cp2k.psmp` | MPI + OpenMP parallel build |
| `cp2k.pdbg` | MPI + OpenMP debug build |
| `cp2k.ssmp` | serial/OpenMP build |
| `cp2k.sdbg` | serial/OpenMP debug build |
For MPI-parallel runs, launch CP2K through the MPI launcher used on your system, for example:
```bash
mpirun -np 2 -x OMP_NUM_THREADS=1 cp2k.psmp -i h2o.inp -o h2o.out
```
`cp2k.psmp` supports both MPI and OpenMP. Setting `OMP_NUM_THREADS=1` keeps this first example in a
simple MPI-only layout. To see the output on screen while also saving it, replace `-o h2o.out` with
`| tee h2o.out`.
## What the Input Does
[RUN_TYPE](#CP2K_INPUT.GLOBAL.RUN_TYPE) is set to `ENERGY`, so CP2K evaluates the electronic ground
state energy without moving the atoms.
[METHOD](#CP2K_INPUT.FORCE_EVAL.METHOD) selects `Quickstep`, CP2K's electronic-structure module for
Gaussian-based density functional theory and related methods.
`BASIS_SET_FILE_NAME` and `POTENTIAL_FILE_NAME` tell CP2K where to find the basis-set and
pseudopotential libraries. The matching [KIND](#CP2K_INPUT.FORCE_EVAL.SUBSYS.KIND) sections then
choose one Gaussian basis set and one GTH pseudopotential for each element.
[CUTOFF](#CP2K_INPUT.FORCE_EVAL.DFT.MGRID.CUTOFF) and
[REL_CUTOFF](#CP2K_INPUT.FORCE_EVAL.DFT.MGRID.REL_CUTOFF) control the real-space integration grids
used by the GPW method. They are not a replacement for increasing the Gaussian basis quality; for
accurate work the basis set and grid parameters should be converged together.
The [POISSON](#CP2K_INPUT.FORCE_EVAL.DFT.POISSON) section and the
[CELL](#CP2K_INPUT.FORCE_EVAL.SUBSYS.CELL) section both use `PERIODIC NONE`, which is appropriate
for this isolated molecule in a large non-periodic box.
## Checking the Result
At the end of `h2o.out`, CP2K prints the total energy in Hartree:
```text
ENERGY| Total FORCE_EVAL ( QS ) energy [hartree]
```
You should also see a line stating that the self-consistent field ({term}`SCF`) cycle converged. If
the SCF cycle does not converge, increase `MAX_SCF`, improve the initial guess, or use a more robust
SCF setup.
The timing table printed at the end of every CP2K run is useful for a first performance check. For
larger calculations, compare timings between MPI/OpenMP layouts and watch whether most of the time
is spent in grid operations, sparse matrix operations, diagonalization, or communication.
## Next Steps
- If this example calculation has been executed on the cloud, consider building or installing CP2K
on your server: [](build-from-source), [](build-with-spack), [](distributions)
- Learn the idea behind GPW: [](../methods/dft/gpw)
- Learn about basis sets and pseudopotentials: [](../methods/dft/basis_sets),
[](../methods/dft/pseudopotentials)
- Converge [CUTOFF](#CP2K_INPUT.FORCE_EVAL.DFT.MGRID.CUTOFF) and
[REL_CUTOFF](#CP2K_INPUT.FORCE_EVAL.DFT.MGRID.REL_CUTOFF): [](../methods/dft/cutoff)
- Proceed to geometry optimization: [](../methods/optimization/geometry_and_cell_opt)
- Proceed to molecular dynamics simulation: [](../methods/sampling/molecular_dynamics)
- Explore more complete examples: <https://github.com/cp2k/cp2k-examples>
```{youtube} qMR-NAaUheg
---
url_parameters: ?start=45
align: center
privacy_mode:
---
```