-
Notifications
You must be signed in to change notification settings - Fork 2
Description
background
you'll see Fresnel fringes in multislice TEM because technically we're simulating a single wavelength. you'll see your STEM probe with fringes out the wazoo for the same reason. Kirkland2010 has some nice discussion on this. IRL, the beam consists of slightly-differing wavelengths (energy) and the gun is not a point source. these are temporal and spatial decoherence.
thinking about how to implement this
right now, you can simply run the same simulation over and over again (for loop) with multiple energies (temporal), or muss with your probe (spatial). Ideally you're summing over multiple scenarios.
this sounds like something we should be able to support. right now we vectorize multiple probe positions propagating through the same potential. could we capture multiple completely-different probes too?
current infrastructure
currently, MultisliceCalculator.setup creates a single base probe (and things like gaussianVOA are not passable). then calculator.run calls create_batched_probes which clones/shifts the base_probe
Even though gaussianVOA is already implemented for Probe, it is not implemented for MultisliceCalculator to be passed through. meaning the user would need to manually add their own gaussian VOA edge grading! this would be nuts!
thinking about averaging
if temporal decoherence is averaging over multiple probes at slightly different wavelengths (or spatial decoherence is averaging over multiple slightly different probes), then MultisliceCalculator's base_probe might need to be multiple probes. and create_batched_probes then needs to be able to handle this (1 --> n_positions, or n --> n x n_positions). and things like haadf_data.py need to be able to handle this too (or the n x n_positions needs to be averaged ahead of time back into n_positions?).