Wrong ultralow thermal conductivity

Dear developers

Thanks for your hard work developing such an amazing package.
Recently, I’m trying to calculate thermal conductivity of SnSe (Pnma phase).
Learning hiPhive is a little hard for me. So I use a wrapper code named ‘hiPhive Wrapper by NML’ which is very useful for VASP users.(GitHub - NewMaterialsLab/hiPhive_wrapper_NML)
I test the example of Si and the result is about 150Wm/K which is in good agreement with experimental and theoretical values.
Then I apply the workflow to the SnSe (anisotropic) structure and the results are terrible (about 0.02 0.056 0.059 W/mK).

Structure Generate

  1. “Number of structures” is set as 20.
  2. The POSCAR contains 8 atoms and SPOSCAR is 2x4x4 supercell (256 atoms).
  3. “Rattle amplitude” is set as 0.02. (Maybe this is the key and I’m calculating the “0.2” case)

Cut off

I set the cut offs as “7.0 5.0 3.0”.
If I increase the cut offs like “9.0 7.0 5.0”, the error comes “Exception: Found cluster (0, 16) twice, check cutoff!”.
If I reduce the cut offs like “5.0 3.0”, ShengBTE cannot get converged.

Fit method

I have tried different fit methods. Here is Summary.
Thermal conductivities by different fit methods are similar.


seed : 42
fit_method : rfe
standardize : True
n_target_values : 15360
n_parameters : 1038
n_nonzero_parameters : 1038
parameters_norm : 712.098
target_values_std : 0.07267954
validation_method : shuffle-split
n_splits : 5
rmse_train : 0.007869026
rmse_validation : 0.008548121
R2_validation : 0.9864213
rmse_train_final : 0.007896464
R2_train : 0.9881957
AIC : -146650
BIC : -138720.1
train_size : 0.8
test_size : 0.2


seed : 42
fit_method : ardr
standardize : True
n_target_values : 15360
n_parameters : 1038
n_nonzero_parameters : 171
parameters_norm : 167.0925
target_values_std : 0.07267954
validation_method : shuffle-split
n_splits : 5
rmse_train : 0.009877123
rmse_validation : 0.01007643
R2_validation : 0.9811318
rmse_train_final : 0.009927941
R2_train : 0.9813408
AIC : -141351
BIC : -140044.6
train_size : 0.8
test_size : 0.2


seed : 42
fit_method : lasso
standardize : True
n_target_values : 15360
n_parameters : 1038
n_nonzero_parameters : 828
parameters_norm : 594.2445
target_values_std : 0.07267954
alpha_optimal : 0.0002712273
validation_method : shuffle-split
n_splits : 5
rmse_train : 0.007912225
rmse_validation : 0.008450503
R2_validation : 0.9867296
rmse_train_final : 0.007981723
R2_train : 0.9879394
AIC : -146740.1
BIC : -140414.5
max_iter : 5000
train_size : 0.8
test_size : 0.2


1.Could you please tell me if there is any obvious error or which parameter should be tested.
2.In the folder “hiphive-examples-master\examples\Si_bulk\kappa_hyper_curve\pdf”, there are a lot of tests about “num features” by different fit methods. I found that results strongly depend on the “num features”. The “num features” would increase with increasing “cut offs”. But these figures show that small “num features” tends to exhibit “good” thermal conductivity. Am I right?

Thanks a lot
Sincerely
Wei Cao

Hi,
The cutoff in hiphive can not be so large that a cluster appears in two different orbits, which can be thought of as the cutoff should be smaller than “L/2”.
This is why you get the error "Found cluster (0, 16) twice, check cutoff!” when using a 9.0Å cutoff for harmonic FCs.

When it comes to constructing FCs it is important to carefully converge your results with respect to cutoffs.
Therefore, I recommend that you study the rmse_validation as a function of first 2nd order cutoff and then 3rd cutoff. Further you can study the thermal conductivity as a function of 3rd order cutoff to get a better understanding how sensitive it is and if it is converged with respect to cutoff.

For specially SnSe there you might require some long-ranged third-order terms (6.5Å) to get converged thermal conductivity (see supplemental material in this paper ). This is also a material we recently models with higher order FCPs in a paper (see here) which might be of interest to you.

In general when it comes to FCP construction I would not worry too much about different fit-methods and instead use least-squares, and rather focus on carefully converging the cutoffs and possibly adding more training data.
Rattle with std 0.02 sounds reasonable for extracting third-order FCs, maybe it is not necessary to include fourth-order terms in your FCP.
Note that the “small number of features tend to exhibit good thermal conductivity” is specific to Si, and is not necessarily true for other materials.