Ivanlh20 / multem

MULTEM is a powerful and advanced collection of C++ routines with CUDA support, designed to perform efficient and accurate multislice simulations for various TEM experiments such as HRTEM, STEM, ISTEM, ED, PED, CBED, ADF-TEM, ABF-HC, EFTEM, and EELS.
GNU General Public License v3.0
66 stars 26 forks source link

Probe size and scanning CBED #37

Closed elisathr closed 4 years ago

elisathr commented 4 years ago

I am currently trying to implement a script for simulating scanning CBED datasets and also PACBED simulations. The task would be easy if I knew the probe size. How can I extract this parameter? Is it possible to somehow control the probe size?

ThFriedrich commented 4 years ago

You can determine the shape and size of the probe from the incident wave, making use of the function "il_incident_wave", for example like this:

function fcn_check_probe(input_multislice)
        system_conf.precision = 1;                           % eP_Float = 1, eP_double = 2
        system_conf.device = 1;                              % eD_CPU = 1, eD_GPU = 2
        system_conf.cpu_nthread = 1; 
        system_conf.gpu_device = 0;

        input_multislice.iw_type = 2;                       % 2 = convergent beam
        input_multislice.iw_x = 0.5*input_multislice.spec_lx;
        input_multislice.iw_y = 0.5*input_multislice.spec_ly;

        output_incident_wave = il_incident_wave(system_conf, input_multislice); 

        psi_0 = output_incident_wave.psi_0;
        figure(1); clf
        subplot(1,2,1)
        imagesc(0:output_incident_wave.dx:(input_multislice.spec_lx),...
                0:output_incident_wave.dy:(input_multislice.spec_ly),...
                abs(psi_0).^2);
        title('Probe profile (intensity)');
        axis image;
        set(gca,'YDir','normal');
        colormap jet;

        subplot(1,2,2)
        imagesc(0:output_incident_wave.dx:(input_multislice.spec_lx),...
                0:output_incident_wave.dy:(input_multislice.spec_ly),...
                angle(psi_0));
        title('Probe profile (Phase)');
        axis image;
        set(gca,'YDir','normal');
        colormap jet;
    end

If you'd use this function on the CBED example example_MULTEM_CBED.m you'd get an image like this: probe

The probe shape depends then on your microscope settings (Aberrations, Defocus, etc...). You can check out the tutorial MULTEM_image_simulation_software_Solutions.pdf or Chapters 2.6 and 2.7 in the Book E. Kirkland, Advanced Computing in Electron Microscopy. 2011. for more information on that.