Queries about input and output files, running specific calculations, etc.
Moderators: Global Moderator, Moderator
-
hszhao.cn@gmail.com
- Full Member
- Posts: 189
- Joined: Tue Oct 13, 2020 11:32 pm
#1
Post
by hszhao.cn@gmail.com » Sun Oct 27, 2024 11:46 am
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
-
jonathan_lahnsteiner2
- Global Moderator
- Posts: 215
- Joined: Fri Jul 01, 2022 2:17 pm
#3
Post
by jonathan_lahnsteiner2 » 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
-
hszhao.cn@gmail.com
- Full Member
- Posts: 189
- Joined: Tue Oct 13, 2020 11:32 pm
#4
Post
by hszhao.cn@gmail.com » Tue Oct 29, 2024 1:25 am
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.
-
hszhao.cn@gmail.com
- Full Member
- Posts: 189
- Joined: Tue Oct 13, 2020 11:32 pm
#5
Post
by hszhao.cn@gmail.com » Wed Oct 30, 2024 2:00 am
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.
-
hszhao.cn@gmail.com
- Full Member
- Posts: 189
- Joined: Tue Oct 13, 2020 11:32 pm
#7
Post
by hszhao.cn@gmail.com » Thu Oct 31, 2024 2:12 pm
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
You do not have the required permissions to view the files attached to this post.
-
jonathan_lahnsteiner2
- Global Moderator
- Posts: 215
- Joined: Fri Jul 01, 2022 2:17 pm
#8
Post
by jonathan_lahnsteiner2 » Mon Nov 04, 2024 7:16 am
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