VASP Single Point Calculation

SkillDev tools

Compute the total energy (and optionally charge density, wavefunction) at a fixed geometry. No ionic relaxation.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the VASP Single Point Calculation skill

About this capability

VASP single-point energy calculation. Used standalone, as a pre-step for DOS/band structure, or to evaluate energy at a fixed geometry.

What this skill tells your AI

The instructions your AI receives, as published by hello-qm/catgo-lrg in server/catgo/workflow/skills/vasp/static/SKILL.md and read by ahel’s review.

Compute the total energy (and optionally charge density, wavefunction) at a fixed geometry. No ionic relaxation.

When to Use

  1. After geometry optimization — get a precise energy at the relaxed geometry with tighter settings
  2. Before DOS calculation — generate CHGCAR with fine k-mesh for subsequent non-SCF DOS
  3. Before band structure — generate CHGCAR for non-SCF band calculation
  4. Convergence testing — test ENCUT, k-points, or other parameters at fixed geometry
  5. Energy evaluation — compare energies of different configurations without relaxing

Discussion Checkpoints

🔴 Must discuss with user:

  • Functional consistency — must match the functional used in the preceding geo_opt; mixing PBE geometry with SCAN single point introduces systematic errors

🟡 Recommend confirming:

  • LORBIT (default: 11) — needed for projected DOS; set to 11 for per-atom orbital projections, omit if only total energy is needed
  • NEDOS (default: 3001) — increase for DOS analysis to resolve fine features; 301 is sufficient for energy-only calculations
  • ISMEAR — use -5 (tetrahedron) for DOS calculations, 0 (Gaussian) for general single points, 1 (Methfessel-Paxton) for metals
  • LCHARG / LWAVE — set True if this single point feeds into a subsequent DOS or band structure calculation

🟢 Safe defaults:

  • NSW = 0 (no ionic relaxation)
  • IBRION = -1 (no ionic optimizer)
  • EDIFF = 1E-5
  • ISMEAR = 0, SIGMA = 0.05

Basic Single Point

from catgo.workflow import Workflow
from catgo.workflow.builtins import geo_opt, single_point

wf = Workflow("Single point energy")
struct = wf.add_task("structure_input", structure=structure_json)
sp = wf.add_task(single_point, structure=struct.output.structure,
                 system_name="TiO2_SP")
wf.submit()

MCP equivalent:

catgo_workflow_engine(action="create", params={"name": "Single point"})

catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "single_point",
  "software": "vasp",
  "structure": "<json>",
  "system_name": "TiO2_SP"
})

catgo_workflow_engine(action="submit", params={"workflow_id": "wf_xxx"})

After Optimization

Chain a single point after relaxation for a more accurate energy:

opt = wf.add_task(geo_opt, structure=struct.output.structure,
                  ISIF=2, system_name="relax")
sp = wf.add_task(single_point, structure=opt.output.structure,
                 ENCUT=600,     # Higher cutoff for precise energy
                 EDIFF=1e-6,    # Tighter SCF convergence
                 system_name="SP_precise")

Pre-DOS Single Point

Generate a converged charge density with a fine k-mesh for subsequent DOS:

sp = wf.add_task(single_point, structure=opt.output.structure,
                 LCHARG=True,    # Write CHGCAR (needed for DOS)
                 LWAVE=True,     # Write WAVECAR (optional, speeds up DOS)
                 ISMEAR=-5,      # Tetrahedron method (accurate DOS)
                 NEDOS=3001,     # Dense energy grid
                 EDIFF=1e-6,     # Tight convergence
                 system_name="SP_for_DOS")

Pre-Band Structure Single Point

Generate CHGCAR for non-SCF band calculation:

sp = wf.add_task(single_point, structure=opt.output.structure,
                 LCHARG=True,    # Write CHGCAR
                 ICHARG=2,       # Self-consistent (generate charge)
                 system_name="SP_for_bands")

Convergence Testing

Test multiple ENCUT values at a fixed geometry:

wf = Workflow("ENCUT convergence")
struct = wf.add_task("structure_input", structure=structure_json)

for encut in [400, 450, 500, 550, 600]:
    wf.add_task(single_point, structure=struct.output.structure,
                ENCUT=encut, system_name=f"ENCUT={encut}")

wf.submit()

MCP equivalent:

catgo_workflow_engine(action="create", params={"name": "ENCUT convergence"})

catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "structure_input",
  "structure": "<json>"
})

# Repeat for each ENCUT value
catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "single_point",
  "software": "vasp",
  "structure": "{{t_001.output.structure}}",
  "ENCUT": 400,
  "system_name": "ENCUT=400"
})
# ... repeat for 450, 500, 550, 600

Key Parameters

ParameterDefaultPurpose
NSW0No ionic steps (fixed geometry)
IBRION-1No ionic optimizer
EDIFF1e-5SCF convergence (use 1e-6 for precise energy)
NEDOS3001Number of DOS points (increase for DOS calculations)
LCHARGFalseWrite CHGCAR (set True for DOS/band pre-calc)
LWAVEFalseWrite WAVECAR (set True to restart from wavefunction)
ISMEAR0Gaussian smearing (use -5 for DOS with tetrahedron)
LORBIT11Write projected DOS (DOSCAR with per-atom projections)

ISMEAR Guidance

System typeISMEARSIGMANotes
Insulator/semiconductor00.05Gaussian smearing (default)
Metal10.2Methfessel-Paxton
DOS calculation-5N/ATetrahedron with Blochl corrections
Molecule in box00.01Small sigma, Gamma-only

Rule: ISMEAR=-5 requires at least 3 k-points per direction. Do not use for Gamma-only calculations.

Output

The single_point task produces:

  • output.energy — total DFT energy in eV
  • output.structure — the (unchanged) input structure

Troubleshooting

ProblemFix
SCF not convergingTry ALGO=All, increase NELM=400, or AMIX=0.1
Negative NBANDS warningIncrease NBANDS explicitly
Memory errorReduce NCORE, or increase node count
Wrong energy for magnetic systemSet ISPIN=2, provide MAGMOM

Signals

GitHub stars
196
Forks
23
Last commit
Sep 2026

Others that do the same job

Advanced
Catalog kind
skill
Gateway key
vasp-static
Source
github.com/hello-qm/catgo-lrg