You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a question about transforming elastic constants when changing the basis/coordinate system. Does pymatgen provide functionality for this kind of transformation?
Specifically, I want to:
Take a 6x6 elastic constant matrix in Voigt notation
Apply a basis transformation
Get the transformed elastic constants in the new basis
Is there a built-in method to do this in pymatgen? If not, what would be the recommended way to implement this?
Thanks in advance!
Zhao
P.S.:
The following things seem to have something to do with this problem:
Based on the related documentation here and here, I got the following solution based on the method here in order to demonstrate some of the methodology conventions of simulating elasticity calculations adopted by the materials project. The details and parameter settings of the vasp calculations may not necessarily be consistent, so the final results cannot be directly and accurately compared with those in the Materials Project database.
# Steps to do the test, using Si_mp-149_primitive.cif as an example:# Use your python venv accordingly:
$ pyenv shell datasci
$ python struct2conv.py -i Si_mp-149_primitive.cif -o Si_mp-149_conventional_standard.vasp
$ mkdir Si_mp-149_conventional_standard &&cd Si_mp-149_conventional_standard
$ ln -sfr ../Si_mp-149_conventional_standard.vasp POSCAR
$ (echo 101;echo DC)|vaspkit
$ (echo 102;echo 2;echo 0.03)|vaspkit
# Comment out the `NPAR` tag in INCAR and run the vasp calculation:
$ mpirun -n 16 vasp_std
# Extract the elastic tensor
$ echo 203 |vaspkit
# Convert elastic tensor to IEEE format
$ python ../elastic2ieee.py
All related necessary files and scripts are as follows:
Hi there,
I have a question about transforming elastic constants when changing the basis/coordinate system. Does pymatgen provide functionality for this kind of transformation?
Specifically, I want to:
Is there a built-in method to do this in pymatgen? If not, what would be the recommended way to implement this?
Thanks in advance!
Zhao
P.S.:
The following things seem to have something to do with this problem:
https://pymatgen.org/pymatgen.core.html#pymatgen.core.operations.SymmOp.transform_tensor
pymatgen/src/pymatgen/core/tensors.py
Line 406 in 0e65d35
But the documentation link shown here is outdated:
The text was updated successfully, but these errors were encountered: