Why is EnumerateStructureTransformation raising a ValueError for my structure? #4470
jcpeterson24
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Greetings,
I am new to using pymatgen and I am trying to use it to enumerate possible orderings for a material that my group has made. This material is a lithium solid electrolyte and has three disordered sites. One of the sites has close to 50/50 occupancy between Mg and Zr, while the other two are ~99% occupied and ~1% occupied with Li. I am trying to obtain a large set of orderings for this material (ranked by their Ewald energy) and then obtain the POSCAR files for them. I have been attempting to use the EnumerateStructureTransformation to do this. I have attached the script I last used and the JSON file for the structure below. (The reason I set the max_disordered_sites parameter so high was because I thought the number of 16f (1% occupied) sites to enumerate over was too small.) However, when I run this script, I get the following error messages:
/gpfs/home/jcp24/.conda/envs/pymatgen_env/lib/python3.10/site-packages/pymatgen/io/cif.py:1313: UserWarning: Incorrect stoichiometry:
CIF={'Li': 0.514, 'Mg': 0.256, 'O': 1.0, 'Zr': 0.244}
PMG={'Li': 4.1156, 'Zr': 1.95, 'Mg': 2.05, 'O': 8.0}
ratios={'Li': 8.007003891050584, 'O': 8.0, 'Mg': 8.0078125, 'Zr': 7.991803278688525}
if struct := self._get_structure(data, primitive, symmetrized, check_occu=check_occu):
/gpfs/home/jcp24/LMZO/enumerateLMZO.py:14: UserWarning: Unable to enumerate for max_cell_size = 1
enums = enum.apply_transformation(LMZO, return_ranked_list=50)
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7f6c343b8b1f in ???
#1 0x55666dd62f09 in ???
#2 0x55666dd724bd in ???
#3 0x55666dd8974f in ???
#4 0x55666dd8b5a4 in ???
#5 0x55666dd5c060 in ???
#6 0x7f6c343a4cf2 in ???
#7 0x55666dd5c090 in ???
/gpfs/home/jcp24/LMZO/enumerateLMZO.py:14: UserWarning: Unable to enumerate for max_cell_size = 20
enums = enum.apply_transformation(LMZO, return_ranked_list=50)
Traceback (most recent call last):
File "", line 1, in
File "/gpfs/home/jcp24/LMZO/enumerateLMZO.py", line 14, in
enums = enum.apply_transformation(LMZO, return_ranked_list=50)
File "/gpfs/home/jcp24/.conda/envs/pymatgen_env/lib/python3.10/site-packages/pymatgen/transformations/advanced_transformations.py", line 402, in apply_transformation
raise ValueError("Unable to enumerate")
ValueError: Unable to enumerate
Li2.11Mg1.05ZrO4.1.json
I looked at the code for the apply_transformation object and it seemed to me that the input structure needs to be ordered for the transformation to work. Is this correct? Please forgive any novice mistakes as I am quite new to pymatgen and don't have much programming experience.
Sincerely,
Joey
Beta Was this translation helpful? Give feedback.
All reactions