Building input
The executation the cij program requires a configuration file and two
input data files. They are described below.
Program configuration file (settings.yaml)
The configuration file in JSON and YAML format controls the behavior of the program: where to look for the input data, which parameters to calculate, the pressure and temperature range to work on.
This files contains three sections, qha, elast and output. The
qha and elast will be control the behavior of QHA calculation module and
thermalelasticity calculation module; the output module controls output
files and formats.
For example in YAML format these sections are written nested:
qha:
input: # the qha::input
settings:
# the qha::settings section
elast:
input: # The elast::input
settings:
# The the elast::settings section
output:
# the output section
In the following table, we summarize the functionalities for these sections in the configurational file.
key |
type |
description |
|---|---|---|
|
||
|
|
The list of output variables |
|
|
Configuration for thermalelasticity calculation |
|
|
|
|
|
Static elasticity input file name |
|
|
Configuration passed to QHA |
|
|
|
|
|
The file name of the QHA input data file |
The following two tables decribes the accepted parameters for qha::settings
and elast::settings.
key |
type |
description |
|---|---|---|
|
||
|
|
The order of equation of state to fit energy vs. volume. |
|
|
Ratio to expand the volume range when extrapolate equation of states. (from (vmin, vmax) to (vmin / volume_ratio, vmax * volume_ratio)) |
|
|
Pressure-sampling interval, used for output, the default value is 1 GPa |
|
|
The interval between two nearest pressures on the grid |
|
|
Desired minimum pressure to calculate, in GPa. |
|
|
Number of volumes (or equivivalently, pressures) on the grid. |
|
|
The minimum temperature, in Kelvin. |
|
|
The interval between two nearest temperatures on the grid, in Kelvin. |
|
|
Number of temperatures on the grid |
key |
type |
description |
|---|---|---|
|
|
|
|
|
Disagreement allowed between the input elastic tenor components and constraints enforced by the symmetry of the system. |
|
|
Drop the elastic tensor components if the magnitude of the elastic tensor components if this component in all volume points are less than this value. |
|
|
Keep filling the missing elastic tensor components based on the crystal system even if not all necessary components are given. |
|
|
Keep filling the missing elastic tensor components based on the crystal system even if the disagreements exceeds tolerance. |
|
|
Name of the crystal system whose symmetry is applied to fill the missing elastic tensor components. Should be one of: |
|
|
|
|
|
The order of phonon frequencies spline interpolation. |
|
|
The method to interpolate phonon frequencies vs. volume. Should be one of: |
Default values are:
qha:
input: input01
settings:
T_MIN: 0
DT: 100
DT_SAMPLE: 100
NT: 16
P_MIN: 0
DELTA_P: 1
DELTA_P_SAMPLE: 1
order: 3
static_only: False
volume_ratio: 1.2
elast:
input: elast.dat
settings:
mode_gamma:
interpolator: lsq_poly
order: 3
symmetry:
system: triclinic
ignore_residuals: False
ignore_rank: False
drop_atol: 1.0e-8
residual_atol: 0.1
output:
pressure_base:
- cij
- bm_VRH
- G_VRH
- v
- vs
- vp
volume_base:
- p
The QHA input data file (input01)
The first input data is similar to the QHA’s input data.
The static elastic moduli data file (elast.dat)
The static elasticity input data file tabulates the static elastic coefficients (\(c_{ij}^\text{st}\), \(i,j = 1 \text{ to } 6\)) and axial length along three axes in Cartesian coordinates (\(a_{ii}, i=1,2,3\)) at a series of volume points.
To compute Voigt-Reuss-Hill (VRH) averaged elastic moduli and acoustic velocities,
unless all non-zero terms are listed one needs to either specify the crystal system
in settings.yaml or manually preprocess the elast.dat with the cij fill
utility to generate a new elast.dat which contains all non-zero terms.
The column names in this table also determine the output thermoelastic coefficient terms.