Page 1 of 1

Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Sun Oct 27, 2024 11:46 am
by hszhao.cn@gmail.com

Dear VASP community,

I have some questions regarding the calculation of elastic tensor:

1. Which is more appropriate to use for elastic tensor calculations - the primitive cell or the conventional cell?
2. If we perform the calculations using the primitive cell, what is the correct procedure to transform the resulting elastic tensor to the conventional cell basis representation? Are there specific transformation methods implemented in vasp?

I would greatly appreciate any insights or references on these technical aspects of elastic tensor calculations.

Best regards,
Zhao


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Mon Oct 28, 2024 2:57 am
by hszhao.cn@gmail.com

See here for the related discussion.


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Mon Oct 28, 2024 10:41 am
by jonathan_lahnsteiner2

Dear hszhao,

The elastic tensor will depend on the symmetry of the used cell. The symmetry of the box will change when switching between conventional and primitive cell. As an example take a look at the
picture for face centered cubic box on this page.
So if you should use the primitive box or the conventional box depends for which symmetry you would like to compute the elastic tensor.
If you compute the elastic tensor in the primitive box you can use symmetry operations to transform the elastic tensor to the symmetry of the conventional box. This paper discusses symmetry transformations for elastic tensors in general. VASP does not offer any procedures to perform these symmetry transformations automatically for elastic tensors.
In your case it is probably the easiest to make two computations in which you compute the elastic tensor for the primitive and the conventional cell and compare the results afterwards.

All the best Jonathan


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Tue Oct 29, 2024 1:25 am
by hszhao.cn@gmail.com

Dear Jonathan,

Thank you very much for your insightful comments. For now, it seems to me that the simplest method is to use the method here to calculate the tensor in IEEE format according to the 1987 IEEE standards for comparison.


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Wed Oct 30, 2024 2:00 am
by hszhao.cn@gmail.com

It must be noted that all the related methods implemented in pymatgen, say convert_to_ieee, structure_transform, etc., only apply to pure roations of basis. Therefore, the transformation of the elastic tensor for the primitive cell of Si to the corresponding elastic tensor in the conventional cell cannot be handled using the above method. See here for the related discussion.


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Wed Oct 30, 2024 12:16 pm
by hszhao.cn@gmail.com

I found the wolfram-based implementation here.


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Thu Oct 31, 2024 2:12 pm
by hszhao.cn@gmail.com
jonathan_lahnsteiner2 wrote: Mon Oct 28, 2024 10:41 am

Dear hszhao,

The elastic tensor will depend on the symmetry of the used cell. The symmetry of the box will change when switching between conventional and primitive cell. As an example take a look at the
picture for face centered cubic box on this page.
So if you should use the primitive box or the conventional box depends for which symmetry you would like to compute the elastic tensor.
If you compute the elastic tensor in the primitive box you can use symmetry operations to transform the elastic tensor to the symmetry of the conventional box. This paper discusses symmetry transformations for elastic tensors in general. VASP does not offer any procedures to perform these symmetry transformations automatically for elastic tensors.
In your case it is probably the easiest to make two computations in which you compute the elastic tensor for the primitive and the conventional cell and compare the results afterwards.

All the best Jonathan

Dear Jonathan,

So far, I can correctly transform the elastic tensor with a rotation matrix but still failed to transform it in the following case.

Below is the Si's elastic tensor for the primitive and the conventional cell obtained by the VASP's built-in method:

Code: Select all

werner@x13dai-t:~/elastic2ieee/rotate_elastic_constants$ cat 2/POSCAR
Si2-primitive cell
1.0
3.8669745922         0.0000000000         0.0000000000
1.9334872961         3.3488982326         0.0000000000
1.9334872961         1.1162994109         3.1573715331
Si
2
Direct
0.749999979         0.749999983         0.749999997
0.500000007         0.499999989         0.499999998
werner@x13dai-t:~/elastic2ieee/rotate_elastic_constants$ cat 2/ELASTIC_TENSOR 
Read Elastic Constants from the ELASTIC_TENSOR.in file if it exists (GPa).
   178.5636    48.7017    40.1841    12.0457     0.0000     0.0000
    48.7017   178.5636    40.1841   -12.0457     0.0000     0.0000
    40.1841    40.1841   187.0813     0.0000     0.0000     0.0000
    12.0457   -12.0457     0.0000    56.4134     0.0000     0.0000
     0.0000     0.0000     0.0000     0.0000    56.4134    12.0457
     0.0000     0.0000     0.0000     0.0000    12.0457    64.9310
werner@x13dai-t:~/elastic2ieee/rotate_elastic_constants$ cat 2_conv/POSCAR
Generated by ATOMKIT code
 1.000000
    5.4687279136426197    0.0000000000000000    0.0000000000000000
    0.0000000000000000    5.4687279136426197    0.0000000000000000
    0.0000000000000000    0.0000000000000000    5.4687279136426197
      Si
       8
Direct
    0.5000000000000000    0.5000000000000000    0.5000000000000000    Si0001
    0.2500000000000000    0.7500000000000000    0.2500000000000000    Si0002
    0.5000000000000000    0.0000000000000000    0.0000000000000000    Si0003
    0.2500000000000000    0.2500000000000000    0.7500000000000000    Si0004
    0.0000000000000000    0.5000000000000000    0.0000000000000000    Si0005
    0.7500000000000000    0.7500000000000000    0.7500000000000000    Si0006
    0.0000000000000000    0.0000000000000000    0.5000000000000000    Si0007
    0.7500000000000000    0.2500000000000000    0.2500000000000000    Si0008
werner@x13dai-t:~/elastic2ieee/rotate_elastic_constants$ cat 2_conv/ELASTIC_TENSOR 
Read Elastic Constants from the ELASTIC_TENSOR.in file if it exists (GPa).
   152.8341    56.9331    56.9331     0.0000     0.0000     0.0000
    56.9331   152.8341    56.9331     0.0000     0.0000     0.0000
    56.9331    56.9331   152.8341     0.0000     0.0000     0.0000
     0.0000     0.0000     0.0000    73.8229     0.0000     0.0000
     0.0000     0.0000     0.0000     0.0000    73.8229     0.0000
     0.0000     0.0000     0.0000     0.0000     0.0000    73.8229

I also attached all the files mentioned above and the necessary input files for doing the corresponding VASP calculations. But I still cannot figure out how to convert these two elastic tensors from one to the other. Could you please give me some more hints/tips/comments to do this transformation?

Regards,
Zhao


Re: Question on Primitive vs. Conventional Cell for Elastic Tensor Calculations and Basis Transformation.

Posted: Mon Nov 04, 2024 7:16 am
by jonathan_lahnsteiner2

Dear hszhao,

VASP does not provide the functionality for doing symmetry transformations on the elastic tensor. I think the easiest way to obtain the elastic tensor in the primitive cell and the conventional cell is to run both simulation boxes with vasp. Then you do not have to figure out the rather complicated transformation for the elastic tensor in the two symmetry groups.

All the best Jonathan