VASP Single Point Calculation
SkillDev toolsCompute 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.
No other account needed.
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
- After geometry optimization — get a precise energy at the relaxed geometry with tighter settings
- Before DOS calculation — generate CHGCAR with fine k-mesh for subsequent non-SCF DOS
- Before band structure — generate CHGCAR for non-SCF band calculation
- Convergence testing — test ENCUT, k-points, or other parameters at fixed geometry
- 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
| Parameter | Default | Purpose |
|---|---|---|
| NSW | 0 | No ionic steps (fixed geometry) |
| IBRION | -1 | No ionic optimizer |
| EDIFF | 1e-5 | SCF convergence (use 1e-6 for precise energy) |
| NEDOS | 3001 | Number of DOS points (increase for DOS calculations) |
| LCHARG | False | Write CHGCAR (set True for DOS/band pre-calc) |
| LWAVE | False | Write WAVECAR (set True to restart from wavefunction) |
| ISMEAR | 0 | Gaussian smearing (use -5 for DOS with tetrahedron) |
| LORBIT | 11 | Write projected DOS (DOSCAR with per-atom projections) |
ISMEAR Guidance
| System type | ISMEAR | SIGMA | Notes |
|---|---|---|---|
| Insulator/semiconductor | 0 | 0.05 | Gaussian smearing (default) |
| Metal | 1 | 0.2 | Methfessel-Paxton |
| DOS calculation | -5 | N/A | Tetrahedron with Blochl corrections |
| Molecule in box | 0 | 0.01 | Small 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 eVoutput.structure— the (unchanged) input structure
Troubleshooting
| Problem | Fix |
|---|---|
| SCF not converging | Try ALGO=All, increase NELM=400, or AMIX=0.1 |
| Negative NBANDS warning | Increase NBANDS explicitly |
| Memory error | Reduce NCORE, or increase node count |
| Wrong energy for magnetic system | Set 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