single_point

CP2K single point energy calculation. Uses GTH pseudopotentials, Gaussian-plane-wave (GPW) method, and DZVP basis sets for periodic DFT.

SKILL.md

GitHub

CP2K Single Point Energy Skill

When to Use

Use this skill when the user wants to:

  • Calculate the total energy of a periodic system using CP2K
  • Compute electronic density of states with CP2K
  • Get forces on atoms without relaxation
  • Benchmark different functionals or cutoffs for a crystal structure

CP2K uses the Gaussian and Plane Waves (GPW) method, which is efficient for large periodic systems (100+ atoms). For molecular systems, prefer ORCA.

Default Parameters

Parameter Default Description
software "cp2k" Must be set to "cp2k"
cp2k_functional "PBE" XC functional
cp2k_basis "DZVP-MOLOPT-SR-GTH" Gaussian basis set
cp2k_pseudo "GTH-PBE" Pseudopotential family
cp2k_cutoff 400 Plane-wave cutoff in Ry
cp2k_rel_cutoff 60 Relative cutoff in Ry
kpoints [1, 1, 1] Gamma-point by default

MCP Tool Examples

Basic single point energy

First, check the loaded structure:

catgo_view(action: "get_state")

Create workflow and add single point task:

catgo_workflow_v2(action: "create", params: {
  name: "TiO2 rutile single point"
})
catgo_workflow_v2(action: "add_task", params: {
  workflow_id: "<wf_id>",
  task_type: "single_point",
  params: {
    software: "cp2k",
    cp2k_functional: "PBE",
    cp2k_basis: "DZVP-MOLOPT-SR-GTH",
    cp2k_pseudo: "GTH-PBE",
    cp2k_cutoff: 400
  }
})

With k-points for metals or small cells

catgo_workflow_v2(action: "add_task", params: {
  workflow_id: "<wf_id>",
  task_type: "single_point",
  params: {
    software: "cp2k",
    cp2k_functional: "PBE",
    cp2k_basis: "DZVP-MOLOPT-SR-GTH",
    cp2k_pseudo: "GTH-PBE",
    cp2k_cutoff: 500,
    kpoints: [4, 4, 4]
  }
})

With DFT+U for transition metal oxides

For systems where standard DFT fails (e.g., NiO, FeO, MnO):

catgo_workflow_v2(action: "add_task", params: {
  workflow_id: "<wf_id>",
  task_type: "single_point",
  params: {
    software: "cp2k",
    cp2k_functional: "PBE",
    cp2k_basis: "DZVP-MOLOPT-SR-GTH",
    cp2k_pseudo: "GTH-PBE",
    cp2k_cutoff: 500,
    cp2k_dft_plus_u: true,
    cp2k_u_values: {"Ni": 6.4, "Fe": 4.0}
  }
})

Hybrid functional (HSE06)

More accurate but significantly more expensive:

catgo_workflow_v2(action: "add_task", params: {
  workflow_id: "<wf_id>",
  task_type: "single_point",
  params: {
    software: "cp2k",
    cp2k_functional: "HSE06",
    cp2k_basis: "DZVP-MOLOPT-SR-GTH",
    cp2k_pseudo: "GTH-PBE",
    cp2k_cutoff: 500,
    cp2k_hfx_cutoff_radius: 6.0
  }
})

Submit and get results

catgo_workflow_v2(action: "submit", params: { workflow_id: "<wf_id>" })
catgo_workflow_v2(action: "status", params: { workflow_id: "<wf_id>" })
catgo_workflow_v2(action: "get_result", params: {
  workflow_id: "<wf_id>",
  task_id: "<task_id>"
})

GTH Pseudopotentials

CP2K uses Goedecker-Teter-Hutter (GTH) pseudopotentials. The pseudopotential family MUST match the functional:

Functional Pseudopotential
PBE GTH-PBE
BLYP GTH-BLYP
PBE0, HSE06 GTH-PBE (same PP for hybrids)
SCAN GTH-SCAN (if available, else GTH-PBE)

Basis set options

Basis Quality Atoms Use
SZV-MOLOPT-SR-GTH Single-zeta All Quick test only
DZVP-MOLOPT-SR-GTH Double-zeta All Production default
TZVP-MOLOPT-SR-GTH Triple-zeta Most Accurate energetics
TZV2P-MOLOPT-SR-GTH Triple-zeta+2pol Main group Benchmark

The -SR- (short range) variants are optimized for condensed phase and are preferred for periodic calculations. -GTH suffix means they match GTH pseudopotentials.

Cutoff Convergence

The plane-wave cutoff (cp2k_cutoff) controls the electron density grid. Test convergence by running multiple single points:

catgo_workflow_v2(action: "add_task", params: {
  workflow_id: "<wf_id>",
  task_type: "single_point",
  task_id: "cut300",
  params: { software: "cp2k", cp2k_cutoff: 300 }
})

Repeat for 400, 500, 600 Ry. Energy should converge to within 1 meV/atom.

Typical converged values:

  • Light elements (C, N, O): 400 Ry
  • Transition metals: 500 Ry
  • Hard pseudopotentials (F, O with certain PPs): 600 Ry

Common Mistakes

  • Mismatched basis/pseudopotential families (GTH-PBE basis with BLYP functional)
  • Cutoff too low (unconverged energy, meaningless forces)
  • Gamma-point k-mesh for a metal (need denser k-points)
  • Using molecular basis sets (no -GTH suffix) with GTH pseudopotentials
  • Forgetting spin polarization for magnetic systems (set cp2k_spin_polarized: true)