compute_shc

The compute_shc keyword is used to compute the non-equilibrium virial-velocity correlation function K(t) and the spectral heat current (SHC) Jq(ω), in a given direction, for a group of atoms, as defined in Eq. (18) and the left part of Eq. (20) of [Fan2019]. The results are written to the shc.out output file.

Syntax

compute_shc <sample_interval> <Nc> <transport_direction> <num_omega> <max_omega> [{<optional_arg>}]

sample_interval is the sampling interval (number of steps) between two correlation steps. This parameter must be an integer that is 1 and 10.

Nc is the total number of correlation steps. This parameter must be an integer that is 100 and 1000.

transport_direction is the direction of heat transport to be measured. It can only be 0, 1, and 2, corresponding to the x, y, and z directions, respectively.

num_omega is the number of frequency points one wants to consider.

max_omega is the maximum angular frequency (in units of THz) one wants to consider. The angular frequency data will be max_omega/num_omega, 2*max_omega/num_omega, ..., max_omega.

<optional_arg> can only be group, which requires two parameters:

group <grouping_method> <group_id>

This means that K(t) will be calculated for atoms in group group_id of grouping method grouping_method. Usually, group_id should be 0 and smaller than the number of groups in grouping method grouping_method. If grouping_method is assigned and group_id is -1, it means to calculate the K(t) for every group_id except for group_id 0 in the assigned grouping_method. Since it is very time and memory consuming to calculate the all group K(t) for a large system, so one can assign the part that don’t want to calculate to group_id 0. Also, grouping method grouping_method must be defined in the simulation model input file. If this option is missing, it means computing K(t) for the whole system.

Examples

Example 1

The command:

compute_shc 2 250 0 1000 400.0

means that

  • you want to calculate K(t) for the whole system

  • the sampling interval is 2

  • the maximum number of correlation steps is 250

  • the transport direction is x

  • you want to consider 1000 frequency points

  • the maximum angular frequency is 400 THz

Example 2

The command:

compute_shc 1 500 1 500 200.0 group 0 4

means that

  • you want to calculate K(t) for atoms in group 4 defined in grouping method 0

  • the sampling interval is 1 (sample the data at each time step)

  • the maximum number of correlation steps is 500

  • the transport direction is y

  • you want to consider 500 frequency points

  • the maximum angular frequency is 200 THz

Example 3

The command:

compute_shc 1 500 1 500 200.0 group 1 -1

means that

  • you want to calculate K(t) for all group_id except for group_id 0 defined in grouping method 1

  • the sampling interval is 1 (sample the data at each time step)

  • the maximum number of correlation steps is 500

  • the transport direction is y

  • you want to consider 500 frequency points

  • the maximum angular frequency is 200 THz

Caveats

This computation can be memory consuming.

If you want to use the in-out decomposition for 2D materials, you need to make the basal plane in the xy directions.