Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different Spacegroup Settings - how to handle? #530

Open
DISORDER-Espen opened this issue Oct 2, 2023 · 2 comments
Open

Different Spacegroup Settings - how to handle? #530

DISORDER-Espen opened this issue Oct 2, 2023 · 2 comments

Comments

@DISORDER-Espen
Copy link

Hi, dear py4dstem developers.
Thank you for a fantastic package and your colossal effort.
We are currently working on an interesting crystal strain and orientation mapping.
However, we have encountered issues regarding suitable matches between simulation and real data.
One thing we run into is that we are looking at a monoclinic system with spacegroup 14.
This spacegroup can have six different settings.

We are very much in doubt if py4dstem chooses to simulate (and index) data based on the standard setting (e.g., P21/c ) even if providing a cif file with a different setting (e.g., P 21/b - not to start talking about if you use P 1 1 21/b).
Can anybody help clear up the confusion (we haven't been able to find anything in the documentation)?

Another question I have is how Py4dSTEM handles systematic absences in the light of dynamic scattering.
If you choose dynamic simulations, will you also get the kinematically forbidden (yet dynamically allowed) reflection simulated?

Kind regards, Espen

@sezelt
Copy link
Member

sezelt commented Oct 2, 2023

In the CIF reader function Crystal.from_CIF there is an optional argument called conventional_standard_structure which uses pymatgen to automatically convert the cell according to some conventions, which you can see documented here. You may try setting this option to False and it may change the behavior.

You can also inspect what cell is being used for all indexing and calculations:

xtal = py4DSTEM.process.diffraction.Crystal.from_CIF(...)
print(xtal.lat_real)

@DISORDER-Espen
Copy link
Author

Hi again. Thank you for the response. We have had a look at the documentation in Pymatgen as well. There are no explicit details on how reflections that are kinematically forbidden due to the presence of screw axes or glide planes are handled. These reflections may appear strongly in diffraction patterns of crystals that scatter dynamically.
Considering that Py4DSTEM has the option of choosing to do Bloch-Wave-based dynamic calculations I reckon it would be good to know how systematic absences (not lattice-type ones - which will remain absent) are handled. From the paper, it seems that the focus is mainly on obtaining more correct intensities, but no mention of absences anywhere. It may be possible to retrieve them by inputting the correct parameters, but we have been unsuccessful in doing so. I assume there must be a relatively easy implementable approach to getting these reflections since they can be deducted from the Spacegroup symmetries and the simple rules relating glide planes and screw axes to the absences (e.g., h,k, or l =2n for a 2_1 screw axis).

Once again, we really appreciate all your hard work and hope you can help us in relation to this question.

Espen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants