name: quantum-espresso description: > Generate and manage Quantum ESPRESSO (pw.x) DFT calculations. Use when the user requests QE, Quantum ESPRESSO, pw.x, or plane-wave pseudopotential calculations outside VASP. compatibility: > Requires Quantum ESPRESSO installed on the HPC target. Pseudopotential files (UPF) must be available in the configured pseudo_dir.
Quantum ESPRESSO (pw.x)
When to Use
- User explicitly requests Quantum ESPRESSO / QE / pw.x
- User needs norm-conserving or ultrasoft pseudopotentials (not PAW-only like VASP)
- User wants open-source plane-wave DFT
- User needs ph.x phonon calculations (hand off to
analysis/phonopy/SKILL.mdfor post-processing)
Prerequisites
- QE binaries (
pw.x,pp.x) accessible on HPC - Pseudopotential library (SSSP or PseudoDojo recommended) in a known directory
- 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": "QE relaxation - TiO2"})
3. Add QE task
CatGo does not yet have a native QE engine. Use task_type: "shell" with input file generation.
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "shell",
"name": "qe_relax",
"command": "pw.x -in relax.in > relax.out",
"input_files": {
"relax.in": "<pw.x input content>"
},
"system_name": "TiO2_relax"
})
When a @register_engine("qe") is added to CatGo, use task_type: "geo_opt" with software: "qe" instead.
4. Submit
catgo_workflow_engine(action="submit", params={"workflow_id": "wf_xxx"})
Input File Template — SCF
&CONTROL
calculation = 'scf'
pseudo_dir = './pseudo/'
outdir = './tmp/'
tprnfor = .true.
tstress = .true.
/
&SYSTEM
ibrav = 0
nat = <natoms>
ntyp = <ntypes>
ecutwfc = 60.0
ecutrho = 480.0
occupations = 'smearing'
smearing = 'mv'
degauss = 0.02
/
&ELECTRONS
conv_thr = 1.0d-6
mixing_beta = 0.3
/
ATOMIC_SPECIES
<element> <mass> <element>.UPF
CELL_PARAMETERS angstrom
<a1x> <a1y> <a1z>
<a2x> <a2y> <a2z>
<a3x> <a3y> <a3z>
ATOMIC_POSITIONS angstrom
<element> <x> <y> <z>
K_POINTS automatic
<k1> <k2> <k3> 0 0 0
Parameter Guidance
| Parameter | Typical value | Notes | |---|---|---| | ecutwfc | 40-80 Ry | Depends on pseudopotential; SSSP suggests per-element values | | ecutrho | 4-12x ecutwfc | NC: 4x, US: 8-12x | | conv_thr | 1.0d-6 | SCF convergence; tighten to 1.0d-8 for phonons | | mixing_beta | 0.3-0.7 | Lower for metals/magnetic systems | | K_POINTS | auto from cell | ~0.03 A^-1 spacing, Gamma for molecules | | smearing | 'mv' | Marzari-Vanderbilt cold smearing; use 'gaussian' for insulators |
Relaxation-Specific Parameters
Add to input for geometry optimization:
&CONTROL
calculation = 'relax' ! ions only
! or 'vc-relax' ! ions + cell
/
&IONS
ion_dynamics = 'bfgs'
/
&CELL ! only for vc-relax
cell_dynamics = 'bfgs'
press = 0.0
/
- Use
relaxfor slabs (fixed cell),vc-relaxfor bulk - For slabs: constrain bottom atoms with
if_posflags (0 = fixed)
Common Pitfalls
- ecutrho too low for US pseudopotentials — NC needs 4x ecutwfc, US needs 8-12x. Check pseudopotential header.
- Mixing divergence for metals — reduce
mixing_betato 0.1-0.2 and trymixing_mode = 'local-TF' - Wrong ibrav — always use
ibrav = 0with explicit CELL_PARAMETERS to avoid ambiguity - Missing pseudo files — ensure UPF filenames match ATOMIC_SPECIES exactly (case-sensitive)
- Slab vacuum too thin — need at least 15 A vacuum; add
assume_isolated = '2D'for 2D corrections - K-points along vacuum direction — slabs must use k3=1 (single k-point in z)
Prompt Engineering
Data & AI
Prompt engineering best practices and templates to maximize AI outputs.
Data Visualization
Data & AI
Generates data visualizations and charts tailored to your data.
RAG Architecture Setup
Data & AI
Setup guide for RAG (Retrieval-Augmented Generation) architectures.