Geo Workflow
Direct command workflows for GEO and structure file utilities.
This module implements CLI workflow orchestration for its command family, including argument parsing, request construction, execution dispatch, and result presentation handoff.
Usage context
- Command routing: Resolve CLI aliases and normalized command names.
- Task execution: Build request objects and invoke registered tasks.
- Output handling: Forward results to table, plot, export, or report flows.
Command: xtob
Convert an XYZ file to ReaxFF GEO format.
Examples
1. Convert slab.xyz to geo with box dimensions 11.0,12.0,100.0 and angles 90,90,90:
reaxkit xtob --file slab.xyz --dims 11.0,12.0,100.0 --angles 90,90,90 --output geo
2. Same as above but sort atoms by z-coordinate in descending order and write to slab_geo:
reaxkit xtob --file slab.xyz --dims 11,12,100 --angles 90,90,90 --sort z --output slab_geo
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
Yes | Input XYZ file | ||
--dims |
Yes | Box dimensions a,b,c | ||
--angles |
Yes | Box angles alpha,beta,gamma | ||
--output |
No | geo | Output GEO file | |
--sort |
No | Sort atoms before writing | x, y, z, atom_type | |
--descending |
No | Sort in descending order |
Command: make-geo
Build a surface slab from a bulk structure and write it to an ASE-supported format.
Examples
1. Build a slab with surface normal (1,0,0), 4x4 supercell expansion in the surface plane, 6 layers in the normal direction, and 15 angstrom vacuum, from AlN.cif and write to slab.xyz:
reaxkit make-geo --file AlN.cif --output slab.xyz --surface 1,0,0 --expand 4,4,6 --vacuum 15
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
Yes | Input bulk structure file | ||
--output |
Yes | Output file | ||
--surface |
Yes | Miller indices h,k,l | ||
--expand |
Yes | Supercell and layers nx,ny,layers | ||
--vacuum |
Yes | Vacuum thickness in angstrom |
Command: sort_geo
Sort atoms in a GEO file and write a new GEO file.
Examples
1. Sort atoms in geo by x-coordinate in ascending order and write to sorted_geo:
reaxkit sort_geo --file geo --output sorted_geo --sort x
2. Sort atoms in geo by atom type in descending order and write to sorted_geo:
reaxkit sort_geo --file geo --output sorted_geo --sort atom_type --descending
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
Yes | Input GEO file | ||
--output |
Yes | Output GEO file | ||
--sort |
Yes | Sort key | m, x, y, z, atom_type | |
--descending |
No | Sort in descending order |
Command: orthogonalize-geo
Convert a hexagonal cell into an orthorhombic cell. In other words, change the angles from 90,90,120 to 90,90,90.
Examples
reaxkit orthogonalize-geo --file AlN.cif --output AlN_ortho.cif
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
Yes | Input structure file | ||
--output |
Yes | Output structure file |
Command: place-geo
Randomly place copies of a molecule into an empty box, optionally around a base structure.
Examples
1. Place 40 copies of template.xyz into an empty box of dimensions 28.8,33.27,60 with angles 90,90,90 and write to placed.xyz:
reaxkit place-geo --insert template.xyz --ncopy 40 --dims 28.8,33.27,60 --angles 90,90,90 --output placed.xyz
2. Place 40 copies of template.xyz into a box of dimensions 28.8,33.27,60 with angles 90,90,90 around the structure in slab.xyz (i.e., slab.xyz is already in place and we want to add template.xyz to it, as used when adding adsorbates to a surface) and write to placed_geo:
reaxkit place-geo --insert template.xyz --ncopy 40 --dims 28.8,33.27,60 --angles 90,90,90 --base slab.xyz --output placed_geo
[Note] Flag --baseplace is sometimes used to control how the base structure is placed in the box. By default, it is 'as-is', meaning the base structure is not changed and is placed in the box according to its own coordinates.
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--insert |
Yes | Insert molecule | ||
--ncopy |
Yes | Number of copies to place | ||
--dims |
Yes | Box dimensions a,b,c | ||
--angles |
Yes | Box angles alpha,beta,gamma | ||
--output |
Yes | Output file | ||
--base |
No | Optional base structure | ||
--mindist |
No | 2.0 | Minimum interatomic distance | |
--baseplace |
No | as-is | Base placement mode | as-is, center, origin |
--maxattempt |
No | 50000 | Maximum placement attempts per copy | |
--randomseed |
No | Random seed |
Command: add_restraints_to_geo
Insert sample or explicit (i.e., settings are defined) restraint blocks into a GEO file.
Examples
1. Adding a sample bond restraint to a geo file:
reaxkit add_restraints_to_geo --file geo --bond --output geo_r
2. Adding an explicit angle restraint to a geo file:
reaxkit add_restraints_to_geo --file geo --angle '1 2 3 109.5000 600.00 0.25000 0.0000000' --output geo_r
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
No | geo | Input GEO file | |
--output |
No | Output GEO file | ||
--bond |
No | Add one bond restraint | ||
--angle |
No | Add one angle restraint | ||
--torsion |
No | Add one torsion restraint | ||
--mascen |
No | Add one mass-center restraint |
Command: add_molcharge_to_geo
Use this command if you want to fix charges for specific atoms or parts of your system.This command inserts MOLCHARGE lines into your GEO file.
Examples
1. Set charge 1 on atoms 20481 to 20589 and charge 0 on all other atoms:
reaxkit add_molcharge_to_geo --file geo --per-atom 20481:20589:1 --rest 0 --output geo_m
2. Set charge -1 on all atoms of type 'e' (electrons in the system) and charge 0 on all other atoms:
reaxkit add_molcharge_to_geo --file geo --per-atom-type e:-1 --rest 0 --output geo_m
Arguments
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--file |
No | geo | Input GEO file | |
--output |
No | Output GEO file | ||
--per-atom |
No | Per-atom charge by atom range using start:end:charge (repeatable) | ||
--per-atom-type |
No | Per-atom charge by atom type using atom_type:charge (repeatable) | ||
--rest |
No | Total charge for remaining atoms (outside per-atom selections) | ||
--each-range |
No | |||
--each-type |
No | |||
--per-type |
No | |||
--together-charge |
No |
Common Runtime and Presentation Arguments
These are shared workflow-level CLI flags added before command-specific options, covering runtime context (engine/input/storage) and output presentation/export behavior.
| Flag | Required | Default | Help | Choices |
|---|---|---|---|---|
--copy-to-dot |
No | Also copy generated output to current directory | ||
--run-id |
No | Run identifier for run-scoped layout (e.g., run_91ac0e). | ||
--project-root |
No | Project root that contains inputs/, data/, analysis/, etc. | ||
--analysis-id |
No | Optional analysis artifact id; defaults to run id. |