コード例 #1
0
 def _integrand(self, k_y):
     """..."""
     if self.x == 0:
         xi = k_y
         return _cexp(1.0j * (-(xi**3) / 3 + (xi * self._ry / self._W_y)))
     else:
         # next line needs _integrand declared cpdef without nogil attribute,
         # and will execute slower than repeating the super class integration
         # routine function here
         #return super(IncAiry2d, self)._integrand(k_y)
         return self.spectrum(k_y) * _cexp(
             1j * self._phase(k_y, self.x, self._ry))
コード例 #2
0
    def _f_Laguerre_Gauss_spherical(self, sin_theta, theta, phi, W_y, k, m):
        """Laguerre-Gaussian spectrum amplitude.

        Implementation for spherical coordinates.
        """
        return self._f_Gauss_spherical(sin_theta, W_y, k) * theta**_abs(m) * \
            _cexp(1j*m*phi)
コード例 #3
0
    def _f_Laguerre_Gauss_cartesian(self, k_y, k_z, W_y, k, m):
        """Laguerre-Gaussian spectrum amplitude.

        Impementation for Cartesian coordinates.
        """
        return self._f_Gauss_cartesian(k_y, k_z, W_y) * \
            _cexp(1j*m*self._phi(k_y, k_z)) * self._theta(k_y, k_z, k)**_abs(m)
コード例 #4
0
    def _integrand(self, theta, phi):
        """Integrand function."""
        sin_theta = _sin(theta)
        cos_theta = _cos(theta)

        return sin_theta * cos_theta * self.spectrum(sin_theta, theta, phi) * \
            _cexp(1j*self._phase(sin_theta, cos_theta,
                                 phi, self.x, self._ry, self._rz))
コード例 #5
0
 def _integrand(self, k_y, k_z):
     """Integrand function."""
     return self.spectrum(k_y, k_z) * \
         _cexp(1j*self._phase(k_y, k_z, self.x, self._ry, self._rz))
コード例 #6
0
 def _integrand(self, k_y):
     """Integrand function."""
     return self.spectrum(k_y) * _cexp(
         1j * self._phase(k_y, self.x, self._ry))
コード例 #7
0
 def _f_Airy(self, k_y, W_y, M, W):
     """Airy spectrum amplitude."""
     return W_y * _cexp(1.0j*(-1/3)*(k_y*W_y)**3) \
         * self._heaviside(W_y * k_y - (M - W)) \
         * self._heaviside((M + W) - W_y * k_y)