Code structures for momentum-resolved phonon-loss simulations #184
Replies: 4 comments 17 replies
-
|
To recap a private discussion with @pzeiger: to enable the required functionality, we need to implement a new EnergyAxis object and the related Measurement and potentially other classes. When looking at the code, we realized there are a lot of classes in potentials/iam.py that are not specific to IAM potentials, and thus should be moved to their own module (called potentials/base.py). This way any changes we do to the data structures will not be dependent on what potential we use, and is in general a more modular code design. |
Beta Was this translation helpful? Give feedback.
-
|
@pzeiger: I think I managed to do the basement surgery correctly β I moved non-IAM related classes to There's only only one thing I ended up unsure about: there was a So I ended up leaving it in place at least for the time being. |
Beta Was this translation helpful? Give feedback.
-
|
@pzeiger: I took a stab at the missing Dask-related code for our new Quick code to test this: will result in the error: I won't have time to work on that further today, so if you can take a crack at it you can use any list of Atoms for the |
Beta Was this translation helpful? Give feedback.
-
|
I was mulling over our current approach, and what we discussed at the end of last week: all of the existing AtomsEnsemble, Potential, and multislice machinery really don't need to know anything about the energy axis, and thus it actually isn't necessary to change any of that to get a usable workflow. So went back to the original approach of using stacks, and I now have a workflow that just stacks stuff on top of each other, retaining the FrozenPhonon snapshops optionally but doing an ensemble mean by default, and resulting in an diffraction intensities stack that has I_vib, I_coh and I_incoh as the first ensemble axis and the energy bins as the second β with all of the abTEM measurement structure retained up until that point, including the ability to save this as a single .zarr file. The only thing that is missing is the ability to apply a detector on this, which I think is because the MeasurementsEnsemble object doesn't understand there can be an extra ensemble axis β the error below is only happening for the visualization, the actual detected values get calculated correctly. So I think we can tackle this much simpler by either modifying the existing MeasurementsArray object or creating a new one that understands the energy ensemble, and if we want to be elegant about it, doing that with an EnergyAxis earlier in the workflow. But this feels like a much smaller task to accomplish, and I think we can simply leave the Dask plumbing as it is. I'd be available to call again to show you this approach and discuss the next steps around the usual time :) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Discussion of the ongoing development to enable simulations of momentum-resolved phonon energy loss in abTEM.
Code in branch phononloss:
https://github.com/abTEM/abTEM/tree/phononloss
Beta Was this translation helpful? Give feedback.
All reactions