ABINIT

SkillDev tools

Generate and manage ABINIT DFT calculations. Use when the user requests ABINIT, or needs DFPT phonons, GW calculations, or BSE optical spectra.

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 ABINIT skill

What this skill tells your AI

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

When to Use

  • User explicitly requests ABINIT
  • User needs DFPT (density-functional perturbation theory) phonons natively
  • User needs GW quasiparticle calculations or BSE optical spectra
  • User wants multi-dataset calculations in a single input file

Prerequisites

  1. ABINIT binaries accessible on HPC (abinit --version)
  2. Pseudopotentials available (JTH PAW or PseudoDojo NC recommended)
  3. Structure loaded in viewer — verify with catgo_view(action="get_state")

Workflow Steps

1. Verify structure

catgo_view(action="get_state")

2. Create workflow

catgo_workflow_engine(action="create", params={"name": "ABINIT GW band gap"})

3. Add ABINIT task via shell

CatGo does not yet have a native ABINIT engine. Use task_type: "shell".

catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "shell",
  "name": "abinit_scf",
  "command": "abinit < abinit.files > abinit.log 2>&1",
  "input_files": {
    "abinit.in": "<input content>",
    "abinit.files": "<files file content>"
  },
  "system_name": "Si_GW"
})

When a @register_engine("abinit") is added, use task_type: "geo_opt" with software: "abinit".

Input File Template — SCF

# SCF ground state
ndtset 1

# System
natom  <natoms>
ntypat <ntypes>
typat  <type_list>
znucl  <Z_list>

acell  3*1.0
rprim
  <a1x> <a1y> <a1z>
  <a2x> <a2y> <a2z>
  <a3x> <a3y> <a3z>

xred
  <x1> <y1> <z1>
  <x2> <y2> <z2>

# Plane-wave basis
ecut    40.0    # Ha (= 2x Ry)
pawecutdg 80.0  # PAW fine grid

# K-points
ngkpt   <k1> <k2> <k3>
nshiftk 1
shiftk  0.0 0.0 0.0

# SCF
nstep   100
toldfe  1.0d-8   # Ha

# Smearing
occopt  3        # Fermi-Dirac
tsmear  0.002    # Ha (~0.05 eV)

# XC
ixc     11       # PBE

The .files File

ABINIT uses a .files file listing input/output/pseudo paths:

abinit.in
abinit.out
abiniti
abinito
abinit_tmp
pseudo/Si.paw

Lines: input, output, root_input, root_output, tmp_dir, then one pseudo per atom type.

Parameter Guidance

ParameterTypical valueNotes
ecut30-50 HaIn Hartree (1 Ha = 27.2 eV); check pseudo recommendations
pawecutdg2x ecutPAW augmentation grid; only for PAW pseudos
toldfe1.0d-8Energy convergence in Ha
toldff1.0d-5Force convergence in Ha/Bohr (for relaxation)
ngkptauto from cellMonkhorst-Pack grid
occopt3 (FD) or 7 (Gaussian)Smearing type
ionmov2 (BFGS)Ion relaxation algorithm
optcell0 (ions) / 2 (full)Cell optimization level

Multi-Dataset Calculations

ABINIT supports chaining calculations in one input via ndtset:

ndtset 3

# Dataset 1: SCF
toldfe1 1.0d-8

# Dataset 2: NSCF for DOS
iscf2    -2
tolwfr2  1.0d-12
getden2  1

# Dataset 3: DFPT phonons
rfphon3  1
nqpt3    1
qpt3     0.0 0.0 0.0
toldfe3  1.0d-10
getden3  1
getwfk3  1

Common Pitfalls

  1. ecut in Hartree, not eV — ABINIT uses Hartree (1 Ha = 27.2 eV). A 40 Ha cutoff is ~1088 eV.
  2. Coordinates default to reduced (xred) — use xred (fractional) or xcart (Bohr). Not Angstrom.
  3. Missing .files file — ABINIT reads file paths from stdin or a .files file; forgetting it causes silent failure
  4. PAW augmentation grid — if using PAW pseudos, pawecutdg must be set (typically 2x ecut)
  5. GW convergence — GW calculations need many empty bands (nband) and careful ecuteps convergence
  6. Large tmp files — ABINIT writes wave functions to _TMP; ensure sufficient disk space

Signals

GitHub stars
196
Forks
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
abinit
Source
github.com/hello-qm/catgo-lrg