agentleFS
Hongyu-yuHongyu-yu/matsci-ai-skills/skills/vasp/SKILL.md

vasp

Skill19 starsChanged 10 months agoMITView on GitHub

Expert assistant for VASP (Vienna Ab initio Simulation Package) calculations - input file generation, parameter selection, workflow setup, and best practices for accurate DFT calculations

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Convergence test: Test 400, 450, 500, 550, 600 eV

    line 44
  2. Distinctive:

    Always Converge: Test k-points and ENCUT before production runs

    line 489
  3. Distinctive:

    Check OUTCAR: Verify "reached required accuracy" message

    line 491
  4. Distinctive:

    Monitor: Check OSZICAR during run for convergence

    line 492
  5. Distinctive:

    Save Everything: Keep all outputs (OUTCAR, vasprun.xml) for analysis

    line 493
  6. Distinctive:

    Consistent Pseudopotentials: Use same POTCAR set for all related calculations

    line 494
  7. Distinctive:

    Production: Use converged parameters

    line 512

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

VASP Calculation Setup Skill

You are an expert assistant for setting up VASP (Vienna Ab initio Simulation Package) calculations. Help users generate correct input files (INCAR, POSCAR, KPOINTS, POTCAR), select optimal parameters for their calculation type, and follow best practices for accurate and efficient DFT calculations.

Overview

VASP is a plane-wave DFT code widely used in materials science and computational chemistry. This skill covers:

Input Files:

  • INCAR: Control parameters
  • POSCAR: Atomic positions and lattice
  • KPOINTS: k-point sampling
  • POTCAR: Pseudopotentials

Calculation Types:

  • Structure relaxation
  • Static calculations (single-point energy)
  • Band structure and DOS
  • Molecular dynamics
  • Phonons and elastic properties
  • Advanced: GW, hybrid functionals, DFPT

Parameter Selection:

  • Accuracy vs efficiency trade-offs
  • System-specific recommendations
  • Convergence testing strategies

Quick Parameter Guide

Essential INCAR Parameters

Energy Cutoff (ENCUT):

ENCUT = 520  # eV, typical for PAW potentials
  • Default: 1.3 × ENMAX from POTCAR
  • Recommendation: 1.3-1.5 × ENMAX for standard calculations
  • Convergence test: Test 400, 450, 500, 550, 600 eV
  • When to increase: Forces, stresses, elastic constants

k-Point Sampling:

# Method 1: Automatic mesh
KSPACING = 0.5  # Å⁻¹, automatic generation

# Method 2: Manual KPOINTS file
# Recommended density: 30-50 k-points per Å⁻¹

Precision (PREC):

PREC = Accurate  # High, Normal, Accurate
  • Low: Fast, testing only
  • Normal: Standard calculations
  • Accurate: Forces, phonons, production

Electronic Convergence (EDIFF):

EDIFF = 1E-6  # eV, energy convergence
  • Standard: 1E-6 eV
  • Tight: 1E-8 eV (forces, phonons)
  • Loose: 1E-4 eV (quick testing)

Input File Templates

INCAR: Control Parameters

# System description
SYSTEM = Cu bulk FCC

# Electronic minimization
ENCUT = 520           # Cutoff energy (eV)
EDIFF = 1E-6          # SCF convergence (eV)
NELM = 100            # Max electronic steps
ALGO = Fast           # Algorithm: Normal, Fast, All
ISMEAR = 1            # Smearing: -5(tetra), 0(Gauss), 1(M-P)
SIGMA = 0.2           # Smearing width (eV)

# Precision
PREC = Accurate       # Precision level
LREAL = Auto          # Real-space projection

# Ionic relaxation
IBRION = 2            # 0=static, 1=RMM-DIIS, 2=CG
ISIF = 3              # 2=relax ions, 3=relax cell+ions
NSW = 100             # Max ionic steps
EDIFFG = -0.02        # Force convergence (eV/Å)

# Output
LWAVE = .FALSE.       # Write WAVECAR
LCHARG = .FALSE.      # Write CHGCAR

POSCAR: Atomic Structure

Cu FCC bulk
1.0                    # Universal scaling
  3.61  0.00  0.00     # Lattice vectors
  0.00  3.61  0.00
  0.00  0.00  3.61
Cu                     # Element symbols
  4                    # Number of atoms
Direct                 # Direct (fractional) coordinates
  0.00  0.00  0.00
  0.50  0.50  0.00
  0.50  0.00  0.50
  0.00  0.50  0.50

Key Points:

  • Line 1: Comment (system description)
  • Line 2: Universal scaling factor
  • Lines 3-5: Lattice vectors (Å)
  • Line 6: Element symbols (must match POTCAR order)
  • Line 7: Number of atoms per element
  • Line 8: Coordinate type (Direct or Cartesian)
  • Lines 9+: Atomic positions

KPOINTS: k-Point Sampling

Gamma-Centered Mesh (most common):

Automatic mesh
0                      # 0=automatic
Gamma                  # Gamma or Monkhorst-Pack
  8  8  8              # k-point grid
  0  0  0              # Shift

Monkhorst-Pack:

Automatic mesh
0
Monkhorst-Pack
  8  8  8
  0  0  0

Band Structure Path:

k-points for band structure
10                     # Number of points between high-symmetry points
Line-mode              # Line mode for band structure
Reciprocal
  0.0  0.0  0.0   !Γ
  0.5  0.0  0.5   !X

  0.5  0.0  0.5   !X
  0.5  0.25 0.75  !W

POTCAR: Pseudopotentials

Generation:

# Concatenate POTCARs in same order as POSCAR
cat ~/vasp/potpaw_PBE/Cu/POTCAR > POTCAR

# For compounds:
cat ~/vasp/potpaw_PBE/Cu/POTCAR \
    ~/vasp/potpaw_PBE/O/POTCAR > POTCAR

Choosing POTCARs:

  • Standard: potpaw_PBE/Element/POTCAR
  • GW calculations: potpaw_PBE.52/Element/POTCAR or potpaw_PBE.54/
  • _sv: Include semicore states (more accurate, slower)
  • _pv: Include p as valence
  • _h: Harder potential (higher ENMAX)

Parameter Selection by Calculation Type

1. Structure Relaxation

INCAR:

IBRION = 2            # Conjugate gradient
ISIF = 3              # Relax cell + ions
NSW = 100
EDIFFG = -0.02        # Force convergence
ISMEAR = 1            # Methfessel-Paxton
SIGMA = 0.2

Convergence Criteria:

  • EDIFFG < 0: Force-based (recommended: -0.01 to -0.05 eV/Å)
  • EDIFFG > 0: Energy-based (less common)

2. Static Calculation (Single-Point)

INCAR:

IBRION = -1           # No ionic updates
NSW = 0
ISMEAR = -5           # Tetrahedron (accurate DOS)
# OR
ISMEAR = 0            # Gaussian (if tetra not converged)
SIGMA = 0.05

3. Band Structure

Step 1: Self-consistent calculation

ICHARG = 2            # From atoms
LCHARG = .TRUE.       # Write CHGCAR

Step 2: Non-self-consistent band structure

ICHARG = 11           # Read CHGCAR, no update
LORBIT = 11           # Write PROCAR
# Use line-mode KPOINTS

4. Density of States (DOS)

INCAR:

ISMEAR = -5           # Tetrahedron method
LORBIT = 11           # Projected DOS
NEDOS = 3000          # DOS resolution
# Use dense k-point mesh

5. Molecular Dynamics

INCAR:

IBRION = 0            # MD
NSW = 1000            # MD steps
POTIM = 1.0           # Time step (fs)
TEBEG = 300           # Start temperature (K)
TEEND = 300           # End temperature
SMASS = 0             # NVE: 0, NVT: >0
MDALGO = 2            # 1=Andersen, 2=Nose-Hoover

6. Phonons (DFPT)

INCAR:

IBRION = 6            # DFPT for phonons
NFREE = 2             # Central differences
POTIM = 0.015         # Displacement (Å)
EDIFF = 1E-8          # Tight convergence!

7. Elastic Constants

INCAR:

IBRION = 6            # DFPT
ISIF = 3
NFREE = 4             # For elastic constants

Advanced Parameters

Hybrid Functionals (HSE06, PBE0)

HSE06:

LHFCALC = .TRUE.      # Activate hybrid
HFSCREEN = 0.2        # HSE screening parameter
AEXX = 0.25           # Exact exchange fraction
ALGO = All            # Or Damped
TIME = 0.4            # Damping for convergence

GW Calculations

Step 1: DFT (PBE)

ALGO = Exact
NBANDS = 200          # Many empty bands
LOPTICS = .TRUE.

Step 2: GW

ALGO = GW0  # Or EVGW
NOMEGA = 50

DFT+U (Correlated Systems)

INCAR:

LDAU = .TRUE.
LDAUTYPE = 2          # Dudarev
LDAUL = 2 -1          # l quantum number (d, s/p)
LDAUU = 5.0 0.0       # U value (eV)
LDAUJ = 0.0 0.0       # J value

van der Waals Corrections

DFT-D3:

IVDW = 11             # DFT-D3 (Grimme)

vdW-DF:

GGA = MK              # optPBE-vdW
LUSE_VDW = .TRUE.
AGGAC = 0.0000

Convergence Testing Strategy

1. k-Point Convergence

# Test sequence
KPOINTS: 4x4x4, 6x6x6, 8x8x8, 10x10x10, 12x12x12

# Converged when ΔE < 1 meV/atom between successive grids

2. Energy Cutoff Convergence

# Test ENCUT
ENCUT: 400, 450, 500, 550, 600 eV

# Converged when ΔE < 1 meV/atom
# Forces may need higher cutoff

3. Systematic Approach

  1. First: Converge ENCUT (fix k-points at moderate density)
  2. Second: Converge k-points (use converged ENCUT)
  3. Document: Save convergence test results

Smearing Methods (ISMEAR)

ISMEARMethodUse Case
-5TetrahedronStatic calcs, DOS, accurate energies
-4Tetrahedron+BlöchlLike -5, slightly different
-1Fermi smearingMetals
0GaussianGeneral purpose
1+Methfessel-Paxton order NRelaxations, metals

Recommendations:

  • Metals, relaxation: ISMEAR=1, SIGMA=0.2
  • Semiconductors, relaxation: ISMEAR=0, SIGMA=0.05
  • Static, DOS: ISMEAR=-5 (no SIGMA needed)
  • Very large systems: ISMEAR=-1, SIGMA=0.1

Common Parameter Combinations

Standard Relaxation (Metals)

# INCAR
ENCUT = 520
PREC = Accurate
IBRION = 2
ISIF = 3
NSW = 100
EDIFFG = -0.02
ISMEAR = 1
SIGMA = 0.2
ALGO = Fast
LREAL = Auto

# KPOINTS
Gamma-centered
0
Gamma
  8  8  8
  0  0  0

High-Accuracy Static Calculation

# INCAR
ENCUT = 600          # Higher cutoff
PREC = Accurate
IBRION = -1
NSW = 0
EDIFF = 1E-8         # Tight convergence
ISMEAR = -5          # Tetrahedron
ALGO = Normal
LREAL = .FALSE.      # Reciprocal space

# KPOINTS (very dense)
0
Gamma
  12 12 12
  0  0  0

Fast Testing Setup

# INCAR
ENCUT = 400          # Lower cutoff
PREC = Normal
EDIFF = 1E-4         # Loose
ISMEAR = 0
SIGMA = 0.1
ALGO = Fast
LREAL = Auto

# KPOINTS (coarse)
0
Gamma
  4  4  4
  0  0  0

Performance Optimization

Parallelization

INCAR:

NCORE = 4            # Cores per band (orbital parallelization)
# OR
NPAR = 8             # Number of groups for band parallelization
KPAR = 4             # k-point parallelization
LPLANE = .TRUE.      # Plane-wise distribution

Guidelines:

  • NCORE ≈ number of cores per node / 2-4
  • KPAR = number of k-points (or divisor)
  • For large systems (>100 atoms): NCORE=1-4
  • For many k-points: Use KPAR

Memory Management

LREAL = Auto         # Reduce memory for large systems
NCORE = 4            # Reduce memory per core

Error Handling

Common Errors and Fixes

"ZBRENT: fatal error in bracketing"

# Fix: Reduce POTIM or use different IBRION
POTIM = 0.2

"EDDDAV: X eigenvalues not converged"

# Fix: Increase NELM, change ALGO
NELM = 200
ALGO = All

"Sub-Space-Matrix is not hermitian"

# Fix: Reduce POTIM, check structure
POTIM = 0.1
SYMPREC = 1E-8

SCF not converging:

# Try sequential fixes:
1. ALGO = All
2. Increase NELM = 200
3. AMIX = 0.2, BMIX = 0.0001
4. Check initial structure (too close atoms?)

Best Practices

  1. Always Converge: Test k-points and ENCUT before production runs
  2. Use Symmetry: Let VASP detect symmetry (speeds up calculations)
  3. Check OUTCAR: Verify "reached required accuracy" message
  4. Monitor: Check OSZICAR during run for convergence
  5. Save Everything: Keep all outputs (OUTCAR, vasprun.xml) for analysis
  6. Consistent Pseudopotentials: Use same POTCAR set for all related calculations
  7. Document Settings: Record all INCAR parameters used

Calculation Workflows

Full Relaxation → Properties

  1. Relaxation: Optimize structure (ISIF=3, IBRION=2)
  2. Static: Accurate energy (ISMEAR=-5, dense k-points)
  3. Band Structure: Non-SCF with line-mode k-points
  4. DOS: Dense k-mesh with ISMEAR=-5
  5. Properties: Phonons, elastic, etc.

Convergence Testing Workflow

  1. Rough optimization: Low ENCUT, coarse k-points
  2. Test ENCUT: Fixed k-points, vary ENCUT
  3. Test k-points: Converged ENCUT, vary k-mesh
  4. Production: Use converged parameters

Subskills

Invoke specific subskills for detailed guidance:

  • relaxation - Structure optimization workflows
  • electronic-structure - Band structure and DOS calculations
  • molecular-dynamics - MD simulations in VASP
  • advanced-functionals - Hybrid, GW, DFT+U methods
  • phonons - DFPT phonon calculations
  • convergence - Systematic convergence testing

Quick Decision Guide

What type of calculation?

GoalIBRIONISIFISMEAREDIFFG
Relax ions only221-0.02
Relax cell+ions231-0.02
Static energy-12-5N/A
MD simulation020N/A
Band structure-120N/A
Phonons (DFPT)620N/A

References

See Also

  • materials-properties skill - For ASE-based workflows with VASP
  • Examples in examples/ directory
  • Detailed references in references/ directory

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.