System and Data Files
This page documents all input files within the bundle for one or more systems (other than NN_config.par, which is detailed in Global Calculations Settings).
Throughout, X denotes the system index (0, 1, ...) and <atom> refers to the chemical symbol in the order it appears inside system_X.par.
Conventions & Units:
- Plain-text files accept comments after
#unless otherwise noted. - Keep atom ordering consistent across all files; the loader maps
<atom>-specific inputs by position, not by name alone. - All energies are in electron volts (eV) unless specified; lattice vectors
scaleis in Bohr.
1. Geometry and Metadata
system_X.par
Defines the cell and fractional atom positions. Minimal skeleton:
scale = 10.68309422
cell
0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
atoms
Ga 0.125 0.125 0.125
As -0.125 -0.125 -0.125
| Key | Description |
|---|---|
scale |
Scalar that multiplies the 3×3 cell matrix to yield Bohr-unit lattice vectors. |
cell block |
Three rows defining the primitive cell vectors in fractional coordinates before scaling. |
atoms block |
Block listing species followed by fractional coordinates. The order determines <atom> indices for every other file. |
input_X.par
| Key | Type | Required? | Notes |
|---|---|---|---|
nBands |
int | Yes | Number of bands included in the reference band structure; must match bandWeights_X.par length. |
maxKE |
float | Yes | Plane-wave kinetic-energy cutoff in units of Hartree that determines the basis size. |
idxVB, idxCB, idxGap |
int | Optional | Zero-based band indices for valence/conduction edges and the band-gap definition used in plots. |
BS_plot_center, BS_plot_CBVB_range, BS_plot_CBVB_range_zoom |
float | Optional | Controls PDF y-limits for full and zoomed plots in separate panels. |
systemName |
string | Optional | Used in *.POSCAR headers and plot titles. |
fit_defPot |
bool | Optional | Enables deformation potential fitting and triggers expDefPot_X.par ingestion in the gradient-based workflows. |
relE_bIdx |
int | Optional | Supplies a relative band index across systems when the loss is defined with respect to relative energy differences. |
2. Spectral and Weighting Data
kpoints_X.par
Lists reciprocal-space sampling for each system.
Format: k_x k_y k_z weight per line, with fractional coordinates relative to the reciprocal lattice. Weights are used as supplied in the band-structure loss; the current loader does not renormalize them automatically. If you want averaging-style weights, normalize them manually yourself in the input file.
Optional companion: kpoints_X_orderMatrix.par (same base name) provides a fixed band-order matrix with shape (nKpts × nBands). When present, DeepPseudopot uses it to track band connectivity, bypassing the automatic sorting heuristics.
bandWeights_X.par
Single-column file with nBands entries. Values scale the per-band MSE contribution inside the training loss. Any mismatch between length and nBands results in an input error.
expBandStruct_X.par
Reference band structures. Column 0 stores cumulative k-point distance (the plotting x-axis); remaining columns store band energies (one column per band). Header comments are allowed. Units: eV.
qpoints_X.par
Structured identically to kpoints_X.par but applied to workflows that require explicit q-space sampling (e.g., coupling matrices on a dedicated grid). The loader looks for this file only when the active workflow calls setQPointsAndWeights.
expCoupling_*.dat
Provides the electron-phonon coupling elements keyed by atom index. Files contain repeated blocks of the form:
Atom idx = <i> atom = <symbol> position = ...
vb-vb coupling elements. polarization of derivative = x
<values>
...
cb-cb coupling elements. polarization of derivative = z
<values>
BulkSystem.setExpCouplings parses each block and stores couplings as (atom_idx, polarization, q_index, band_id) tuples. Supply one file per system or polarization scenario and ensure that the band ordering matches expBandStruct_X.par.
expDefPot_X.par
Sets deformation-potential targets as fixed-state transitions. The file is a table with seven columns:
kidx_VB bidx_VB kidx_CB bidx_CB latConst_ratio defPot_gap(eV) weight
The first four columns must be integers. kidx_VB/bidx_VB and kidx_CB/bidx_CB identify the two endpoint states of the transition. The two states may be at the same k-point or at different k-points. The final weight column is the explicit weighting for that target row; these targets are not reweighted by kpoints_X.par.
In the gradient-based workflows, these rows are handled consistently in serial, separateKptGrad, and multiprocessing runs. Each row is treated as a system-level observable rather than being attached to the current k-point loop index.
3. Initialization Files
init_<atom>Params.par
Per-species coefficient vectors for the analytic Zunger form. The default ordering is nine parameters:
ppParams[0]–ppParams[3]: Zunger-form local coefficientsppParams[4]: long-range parameter (only defined for \(N-1\) species to enforce charge neutrality)ppParams[5]: spin–orbit coupling parameterppParams[6],ppParams[7]: nonlocal parametersppParams[8]: strain-tensor parameter
Older datasets may only include the first 5 entries; remaining slots implicitly default to zero. Provide one file per atom type listed in system_X.par.
init_qSpace_pot.par
Optional override for the initialization stage. The file contains one row per \(q\) value, where \(q\) is the magnitude of the reciprocal space vector \(|\mathbf{G}|\):
q V_atom0(q) V_atom1(q) ...
q follows the atom order defined in system_X.par. When present, this file replaces the analytic Zunger initialization curve.
init_PPmodel.pth and init_AdamState.pth
PyTorch checkpoint files. Drop them into the inputs folder to restart from a previous NN (init_PPmodel.pth) and, optionally, resume the Adam optimizer state (init_AdamState.pth). When omitted, the code initializes weights using the constructor specified by PPmodel.
4. Monte Carlo and Specialized Controls
mcOpts*.par
Text files to configure standalone Monte Carlo drivers (e.g., main_mc_Zunger_*.py). Supported keywords:
| Keyword | Example | Meaning |
|---|---|---|
betas = <start> <stop> |
betas = 100 1 |
Defines the beta (inverse temperature) sweep. |
stepsAtTemp = <cooling> <heating> |
stepsAtTemp = 5 5 |
Number of MC steps spent at each beta on the down/up ramp. |
tempStepSizeMod = <down> <up> |
tempStepSizeMod = 1.0 1.0 |
Multiplier applied to the beta increments. |
totalIter = N |
totalIter = 20 |
Total number of MC iterations. |
fitDefPot, fitCoupling, fitEffMass, optGaps |
fitCoupling = True |
Boolean flags that enable auxiliary observables in the MC cost. |
defPotWeight, writePerIter |
defPotWeight = 0.5 |
Optional floats that reweight deformation potentials or control logging cadence. The current Monte Carlo code still uses its older defPot interface rather than the row-based expDefPot_X.par transition table described above. |
<atom>ParamSteps.par
When present, these files specify per-parameter perturbation magnitudes for Monte Carlo proposals. The expected layout is one float per NN/Zunger parameter (typically nine entries) matching the <atom> order defined in system_X.par. Omit these files to let the MC code infer default step sizes from mc_percentage.
mc_beta_schedule
Optional annealing script. Provide two columns per line — iteration_index beta — to override the constant mc_beta value. The runtime reads entries sequentially and wraps/holds the last value once the file is exhausted.