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