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.