Command Line Interface and Configuration#
Overview#
jrystal is a quantum chemistry calculation package that can be executed via command line interface. The program uses a YAML configuration file to specify calculation parameters and settings.
Command Line Interface#
The command line interface accepts the following options:
-m, --mode: Specifies the calculation mode (energyorband). Default:energy-c, --config: Specifies the path to the configuration file. Default:config.yaml
Example Usage#
For total energy minimization:
jrystal -m energy -c config.yaml
For band structure calculation:
jrystal -m band -c config.yaml
Configuration File Structure#
The configuration file must be in YAML format and contain the following sections:
Crystal Structure
crystal: Identifier for the crystal structure. The program searches for$CRYSTAL.xyzin the geometry directorycrystal_file_path_path: Explicit path to the crystal structure file (takes precedence overcrystalif both are specified)
Exchange-Correlation Functional
xc: Exchange-correlation functional specification (e.g.,lda_xfor Local Density Approximation exchange)
Pseudopotential Configuration
use_pseudopotential: Enables or disables pseudopotential calculations (True/False)pseudopotential_file_dir: Path to pseudopotential files directory (uses system default if unspecified)
Planewave Basis Settings
freq_mask_method: Grid masking methodology:cubic: Employs cubic grid maskingspherical: Employs spherical grid masking with user-defined cutoff
cutoff_energy: Planewave kinetic energy cutoff in Hartree (required forsphericalmethod)grid_sizes: Fast Fourier Transform (FFT) grid dimensionsk_grid_sizes: Monkhorst-Pack k-point grid dimensions for Brillouin zone samplingoccupation: Electronic state occupation methodology: can be chosen fromsimplex-projector,gamma,uniform, oridempotent:simplex-projector: Simplex projector methodgamma: Gamma-point sampling schemeuniform: Uniform occupation distributionidempotent: Idempotent method
smearing: Fermi-Dirac distribution temperature parameter in Hartreeempty_bands: Number of additional unoccupied bands to computespin_restricted: Enforces identical spatial orbitals for spin-up and spin-down electrons (True/False)
Ewald Summation Parameters
ewald_args: Ewald sum configuration:ewald_eta: Separation parameter for real/reciprocal space partitioningewald_cutoff: Reciprocal space cutoff radius
Optimization Parameters
epoch: Maximum optimization iteration countoptimizer: Optimization algorithm selection (e.g.,adam)optimizer_args: Algorithm-specific parameters:learning_rate: Optimization step size
scheduler: Learning rate scheduling specification (nullfor constant rate)convergence_condition: Energy variance threshold for convergence determination
Band Structure Calculation Parameters
band_structure_empty_bands: Number of unoccupied bands for band structure analysisk_path_special_points: High-symmetry k-point sequence (e.g.,LGXL)num_kpoints: Sampling point count per k-path segmentk_path_file: Path to NumPy (.npy) file containing custom k-point coordinatesband_structure_epoch: Maximum band structure optimization iterationsk_path_fine_tuning: Enables progressive k-path optimization using previous solutionsk_path_fine_tuning_epoch: Iteration count per k-point during fine-tuning
System Configuration
seed: Random number generator seed for reproducibilityxla_preallocate: Enables XLA memory preallocation for performance optimizationjax_enable_x64: Activates double-precision (64-bit) floating-point computationverbose: Controls computation progress output detaileps: Numerical stability threshold for division operations