materialsproject / pymatgen

Python Materials Genomics (pymatgen) is a robust materials analysis code that defines classes for structures and molecules with support for many electronic structure codes. It powers the Materials Project.
https://pymatgen.org
Other
1.52k stars 864 forks source link

Add mirroring of slabs to CoherentInterfaceBuilder #2406

Open genijalac11 opened 2 years ago

genijalac11 commented 2 years ago

The CoherentInterfaceBuilder works rather nicely when creating interfaces between various lattices. However, it seems like it currently doesn't consider mirroring non-symmetric slabs, which then leaves quite a few possible structures unexplored. Not sure whether this would be easier to implement at this step or in the Surface module? (If that feature is already present and I missed it, let me know!)

shyuep commented 2 years ago

Yes this would be a helpful feature! But if you mirror, wouldn't that create a twin boundary?

genijalac11 commented 2 years ago

Hmm I'm not sure that would happen. What the CoherentInterfaceBuilder module does now is to take two specified slabs and make an interface out of them. If both slabs are symmetric, there is no issue with the orientation of each. However, if the surfaces are non-symmetric there is a number of combinations between the distinct surface terminations. So far the module does not take that into account and simply aligns whatever is the top of the substrate with the bottom of the film (oriented along the non periodic direction).