コード例 #1
0
    def as_transmission_functions(self, energy):
        xp = get_array_module(self.array)
        complex_exponential = get_device_function(xp, 'complex_exponential')

        array = complex_exponential(energy2sigma(energy) * self._array)
        return TransmissionFunctions(array,
                                     slice_thicknesses=self._slice_thicknesses,
                                     extent=self.extent,
                                     energy=energy)
コード例 #2
0
ファイル: potentials.py プロジェクト: CGao-STEM/abTEM
    def as_transmission_function(self,
                                 energy: float,
                                 in_place: bool = True,
                                 max_batch: int = 1,
                                 antialias_filter: AntialiasFilter = None):
        """
        Calculate the transmission functions for a specific energy.

        Parameters
        ----------
        energy: float
            Electron energy [eV].

        Returns
        -------
        TransmissionFunction object
        """

        xp = get_array_module(self.array)
        complex_exponential = get_device_function(xp, 'complex_exponential')

        array = self._array
        if not in_place:
            array = array.copy()

        array = complex_exponential(energy2sigma(energy) * array)

        t = TransmissionFunction(
            array,
            slice_thicknesses=self._slice_thicknesses.copy(),
            extent=self.extent,
            energy=energy)

        if antialias_filter is None:
            antialias_filter = AntialiasFilter()

        for start, end, potential_slices in t.generate_slices(
                max_batch=max_batch):
            antialias_filter.bandlimit(potential_slices)

        return t
コード例 #3
0
ファイル: base_classes.py プロジェクト: DongxinLiu/abTEM
 def sigma(self) -> float:
     """
     Interaction parameter.
     """
     self.check_is_defined()
     return energy2sigma(self.energy)
コード例 #4
0
def test_energy2sigma():
    assert np.isclose(energy2sigma(300e3), 0.0006526161464700888)