Command Line Interface#
airsspy installs the ap console script. The Click command group is named
airss internally, but the packaged entry point is ap.
ap --help
ap --version
Global options control logging and the MongoDB store used by the jobflow commands:
ap -v --db-host localhost --db-port 27017 --db-name airss db summary
Use -v or -vv for more logging, and -q, -qq, or -qqq for less.
Command Overview#
Command |
Purpose |
|---|---|
|
Check AIRSS executables, scheduler detection, or database access. |
|
Run local non-jobflow searches, relaxations, CRUD workers, and single-points. |
|
Rank |
|
Convert packed |
|
Concatenate or split |
|
Build jobflow search or relaxation flows and store results in MongoDB. |
|
Query and retrieve jobflow results from MongoDB. |
|
Replace the structure in a CASTEP |
Environment Checks#
ap check airss
ap check scheduler --allow-dummy
ap --db-host localhost --db-name airss check database
check airss looks for buildcell, cabal, and castep_relax on PATH.
check scheduler auto-detects Slurm, SGE, or the dummy fallback. check database opens the configured jobflow store and lists visible projects.
Local Runs#
ap run is the local AIRSS interface. It writes files in --workdir, honors a
stop file for searches, checks scheduler walltime with --walltime-buffer,
and can pack successful .res outputs into packed.res.
Random Searches#
ap run search --seed Si --code castep --nmax 100 --pack
ap run search --seed Si --code gulp --exe ggulp --cluster
ap run search --seed Si --code vasp --potcar-dir /path/to/potpaw --potcar-map Si=Si
ap run search --seed seed --build-only --nmax 20
Required files:
Code |
Required input files |
|---|---|
|
|
|
|
|
|
|
|
|
|
Useful options include --pressure, --max-iterations, --build-timeout,
--mpinp, --keep, and --diagnose.
Formula sampling can inject sampled #FORMULA and #VARVOL directives into
the seed sent to buildcell:
ap run search --seed seed --formula SiO2,Si2O3 --target-volume Si=20 --target-volume O=12
ap run search --seed seed --elements Li,P,O --max-coeff 4 --oxidation-state Li=1,P=5,O=-2
ap run search --seed seed --elements Li,P,O --diagnose 3
Post-relax RSS pruning is available with --prune. The main controls are
--prune-pool-size, --prune-keep-fraction, --prune-dedup-tol,
--prune-fingerprint-cutoff, and --prune-zweight.
Relax Existing Structures#
ap run relax --cell "*.cell" --seed Si --code castep --pack
ap run relax --cell "*.res" --seed Si --code vasp --potcar-dir /path/to/potpaw
ap run relax --cell "*.res" --code ml --calculator mace:medium --device cuda --batch-size 16
ap run relax --cell "*.cell" --code ml --calculator ase:mace:medium --optimizer BFGS
run relax accepts single-structure .cell and .res inputs. Packed .res
files matched by the glob are skipped. For .res inputs with non-ML codes,
airsspy looks for a root template such as Si.cell so it can preserve the
non-structural cell settings while replacing the lattice and positions.
Supported relaxation codes are castep, gulp, pp3, abacus, vasp, and
ml. The --singlepoint flag reuses this command for single-point calculations
where supported: castep, abacus, vasp, and ml.
Single-Point Calculations#
ap run sp --cell "*.cell" --seed Si --code castep
ap run sp --cell "*.res" --code ml --calculator mace:medium --batch-size 32
ap run sp --cell "*.res" --seed Si --code vasp --potcar-dir /path/to/potpaw
run sp supports castep, abacus, vasp, and ml. RES input is currently
supported for VASP and ML single-points.
CRUD Queue Worker#
ap run crud --workdir . --code castep
ap run crud --workdir . --code vasp --singlepoint --potcar-dir /path/to/potpaw
ap run crud --workdir . --code ml --calculator mace:medium --batch-size 8 --nostop
The CRUD worker consumes queued hopper/*-*.res files, converts each claimed
RES structure into backend inputs, and moves outputs into good_castep/ or
bad_castep/. Use STOP_CRUD to stop a long-running worker. --cycle can
requeue CASTEP-like electronic-minimisation failures.
Ranking And Hull Analysis#
ap rank reads packed .res from files or standard input. It also reads extxyz
files when the extension or --input-format extxyz says so.
cat *.res | ap rank
ap rank packed.res -t 20 -de 0.05
ap rank structures.xyz --input-format extxyz --label-field structure_id
ap rank packed.res -f SiO2 --filter-name "SiO2-*"
Important filters and display modes:
Option |
Behaviour |
|---|---|
|
Keep only the top N structures per ranking output. |
|
Filter by relative energy per atom in eV. |
|
Match an exact formula, a comma-separated element set, or a glob. |
|
Filter by exact number of formula units. |
|
Filter by exact number of species. |
|
Filter by ion count; negative values mean up to |
|
Show absolute enthalpy instead of relative enthalpy. |
|
Do not shorten labels in output. |
|
Show the most stable structure per composition. |
Duplicate merging uses distance fingerprints:
ap rank packed.res -u 0.1 --unite-ethresh 0.05
ap rank packed.res -u 0.1 --unite-output united --unite-output-format res
ap rank packed.res -u 0.1 --distance 8.0 --unite-zweight
Pathological low-energy pruning is opt-in:
ap rank packed.res --prune-pathological --pathology-sigma-factor 3
Convex-hull, or Maxwell construction, mode uses pymatgen:
ap rank packed.res -m -el Si,O
ap rank packed.res -m -el Si,O --plot hull.html
ap rank packed.res -m -el Si,O -s
-f/--formula cannot be combined with -m/--maxwell; use -el/--element-list
to choose the phase diagram elements.
Convert, Pack, And Unpack#
ap convert packed.res structures.xyz
ap convert structures.xyz res_dir/
ap convert packed.res res_dir/
ap convert -l Si-002 packed.res Si-002.res
ap convert -l Si-002 packed.res Si-002.xyz
The conversion path preserves RES lines when possible. Forces in RES atom columns 8-10 are transferred to extxyz calculators, and extxyz forces are written back to RES force columns.
ap pack *.res packed.res
ap pack --from-dir res_files packed.res
ap pack --from-dir xyz_files packed.xyz
ap unpack packed.res split_res/
ap unpack packed.xyz split_xyz/
pack concatenates files. unpack splits RES on TITL … END blocks and
splits extxyz by atom-count structure blocks. Use ap convert when changing
between RES and extxyz formats.
Jobflow Deployment#
ap deploy creates jobflow flows and runs them locally with a MongoDB-backed
JobStore.
ap --db-name airss deploy search --seed Si --project test --num 100 --code castep
ap deploy search --seed Si --project test --num 20 --n-structures 5 --dryrun
ap deploy search --seed Si --project test --num 10 --code vasp --dryrun
deploy search uses the same seed companion suffixes as local search, except
ML is not a deploy backend. Supported deploy codes are castep, gulp, pp3,
abacus, and vasp.
ap deploy relax --project test --cell "*.cell" --param Si.param --code castep
ap deploy relax --project test --cell "*.xyz" --param Si.INCAR --code vasp --dryrun
deploy relax can read .cell files directly or ASE-readable structures. With
--base-cell, it overlays each input structure onto a CASTEP cell template.
Database Queries#
The db commands read from the MongoDB database selected by the global
--db-host, --db-port, and --db-name options:
ap db list-projects
ap db list-seeds --project test
ap db summary --project test
ap db throughput --past-days 7
ap db retrieve-project --project test --output res_out
retrieve-project writes stored RES contents as <struct_name>.res.
Utility Tools#
tools modcell prints a CASTEP .cell file made from a template plus a new
structure readable by ASE:
ap tools modcell template.cell relaxed.xyz > new.cell