Skip to content

Command-line interface

flowchart TB
  A{mode?} --> |"<code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--enumeration</code>"| B[enumerate a list of<br>representative CSMs];
  B --> E[save CSMs to NPZ file];
  E --> F;
  A --> |"<code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--read</code>"| C["read CSMs from NPZ file<br>(after <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--enumeration</code>)"];
  C --> G["export CSM to POSCAR<br>files if <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--export</code>"];
  G --> F;
  A --> |"<code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--single</code>"| D["read a single CSM from<br><code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>-I</code> and <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>-F</code> POSCAR files"];
  D --> F["analyze orientation<br>if <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--orientation</code>"];
  F --> I["generate reports according<br>to <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--csv</code> and <code style='color: #dd0099 !important; background-color: var(--md-code-bg-color); border-radius: .1rem; font-size: .85em; padding: 0 .2941176471em; word-break: break-word;'>--plot</code>"];

The crystmatch command-line interface is already introduced in Tutorial. Here, we provide a table of all available options:

Option Description Mode
-h, --help Show help message and exit. none
-v, --version Show program's version number and exit. none
-E MAX_MU MAX_RMSS
--enumeration MAX_MU MAX_RMSS
Use 'enumeration' mode, with MAX_MU and MAX_RMSS as the multiplicity and RMSS upper bounds. 'enumeration'
-R CSM_LIST
--read CSM_LIST
Use 'read' mode, with CSMs loaded from an existing NPZ file CSM_LIST. 'read'
-S
--single
Use 'single-CSM' mode, with the CSM uniquely determined by -I and -F. 'single-CSM'
-I POSCAR_I
--initial POSCAR_I
POSCAR file of the initial crystal structure. 'enumeration', 'single-CSM'
-F POSCAR_F
--final POSCAR_F
POSCAR file of the final crystal structure. 'enumeration', 'single-CSM'
-a
--accurate
Use more accurate algorithm for RMSD minimization, taking about 4x longer time. 'enumeration'
-e index1 [index2 ...]
--export index1 [index2 ...]
Export CSMs from NPZ file with the given indices. 'read'
-t TOL
--tolerance TOL
Tolerance for determining crystal symmetry; default is 1e-3. 'enumeration', 'single-CSM'
-o vix viy viz vfx vfy vfz wix wiy wiz wfx wfy wfz
--orientation vix viy viz vfx vfy vfz wix wiy wiz wfx wfy wfz
Benchmark CSMs by their deviation angles from the orientation relationship: "\(\mathbf{v}_\text{i}\parallel\mathbf{v}_\text{f}\) and \(\mathbf{w}_\text{i}\parallel\mathbf{w}_\text{f}\)".
Note: arguments must be given in Cartesian coordinates.
all
-c, --csv Create CSV file. all
-p, --plot Create scatter plot. all
-u, --uspfix Use USP-fixed manner in --orientation. all