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.

The structure of the configuration file

key

type

description

additionalProperties

output

object

The list of output variables

elast

object

Configuration for thermalelasticity calculation

elast::settings

object

elast::input

string

Static elasticity input file name

qha

object

Configuration passed to QHA

qha::settings

object

qha::input

string

The file name of the QHA input data file

The following two tables decribes the accepted parameters for qha::settings and elast::settings.

QHA calculation settings (qha::settings)

key

type

description

additionalProperties

order

number

The order of equation of state to fit energy vs. volume.

volume_ratio

number

Ratio to expand the volume range when extrapolate equation of states. (from (vmin, vmax) to (vmin / volume_ratio, vmax * volume_ratio))

DELTA_P_SAMPLE

number

Pressure-sampling interval, used for output, the default value is 1 GPa

DELTA_P

number

The interval between two nearest pressures on the grid

P_MIN

number

Desired minimum pressure to calculate, in GPa.

NTV

integer

Number of volumes (or equivivalently, pressures) on the grid.

T_MIN

number

The minimum temperature, in Kelvin.

DT

number

The interval between two nearest temperatures on the grid, in Kelvin.

NT

integer

Number of temperatures on the grid

Themoelasticity calculation setttings (elast::settings)

key

type

description

symmetry

object

symmetry::residual_atol

number

Disagreement allowed between the input elastic tenor components and constraints enforced by the symmetry of the system.

symmetry::drop_atol

number

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.

symmetry::ignore_rank

boolean

Keep filling the missing elastic tensor components based on the crystal system even if not all necessary components are given.

symmetry::ignore_residuals

boolean

Keep filling the missing elastic tensor components based on the crystal system even if the disagreements exceeds tolerance.

symmetry::system

string

Name of the crystal system whose symmetry is applied to fill the missing elastic tensor components. Should be one of: triclinic, monoclinic, hexagonal, trigonal6, trigonal7, orthorhombic, tetragonal6, tetragonal7, cubic.

mode_gamma

object

mode_gamma::order

integer

The order of phonon frequencies spline interpolation.

mode_gamma::interpolator

string

The method to interpolate phonon frequencies vs. volume. Should be one of: spline, lsq_poly, lagrange, krogh, pchip, hermite, akima.

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.