Programming Reference for VirtualLab Fusion  2022.1
Static Public Member Functions | List of all members
ElementaryPropagationOperators Class Reference

This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains a number of static member functions performing well-known elementary wave propagation operators. Every function warns for numerical problems that can occur during propagation. Additionally some functions are supported that can estimate numerical errors without performing a propagation. More...

Static Public Member Functions

static Boolean AreFrtSamplingProblems (ComplexAmplitude ca, double distance)
 Checks for sampling problems of the propagation core during Fresnel Propagation. the function takes into account a present separate spherical phase factor too. The SphericalPhaseRadius is approximated as a quadratic phase factor in accordance of the paraxial approximation of the Fresnel Propagation. More...
 
static Boolean AreFrtSamplingProblems (ComplexAmplitude ca, double distance, double samplingFactor)
 Checks for sampling problems of the propagation core during Fresnel Propagation. the function takes into account a present separate spherical phase factor too. The SphericalPhaseRadius is approximated as a quadratic phase factor in accordance of the paraxial approximation of the Fresnel Propagation. More...
 
static Boolean AreRayleighSommerfeldSamplingProblems (ComplexAmplitude ca, double distance)
 Checks for sampling problems of the propagation core during Rayleigh-Sommerfeld convolution propagation and for sampling problems of the spherical phase factor. More...
 
static Boolean AreSpwSamplingProblems (ComplexAmplitude ca, double distance)
 Checks for sampling problems of the propagation core during Spectrum of Plane Waves propagation and additionally for sampling problems of a possibly present spherical phase factor. If the propagation core of the spherical phase factor is undersampled numerical errors will occur during the propagation. More...
 
static void Frt (ComplexAmplitude ca, double distance, Complex n, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude the specified distance by computing the Fresnel transform. The ComplexAmplitude ca is changed during the propagation. More...
 
static void Frt (ComplexAmplitude ca, double distance, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude the specified distance by computing the Fresnel transform. The ComplexAmplitude ca is changed during the propagation. More...
 
static void RayleighSommerfeldConvolution (ComplexAmplitude ca, double distance, bool invert, Complex n, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreRayleighSommerfeldSamplingProblems to check for numerical errors before propagating. More...
 
static void RayleighSommerfeldConvolution (ComplexAmplitude ca, double distance, Complex n, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude by the specified distance by a convolution of the complex amplitude and the propagation core (Rayleigh-Sommerfeld integral). The convolution is calculated in the frequency domain. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreRayleighSommerfeldSamplingProblems to check for numerical errors before propagating. More...
 
static ComplexAmplitude RayleighSommerfeldCore (SamplingParameters samplingParameters, double distance, double Wavelength, Complex n)
 Generates the propagation core for the Rayleigh-Sommerfeld convolution. More...
 
static void Spw (ComplexAmplitude ca, double distance, bool invert, Complex n, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating. More...
 
static void Spw (ComplexAmplitude ca, double distance, Complex n, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating. More...
 
static void Spw (ComplexAmplitude ca, double distance, out Boolean areSamplingProblems)
 Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating. More...
 

Detailed Description

This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains a number of static member functions performing well-known elementary wave propagation operators. Every function warns for numerical problems that can occur during propagation. Additionally some functions are supported that can estimate numerical errors without performing a propagation.

Member Function Documentation

◆ AreFrtSamplingProblems() [1/2]

static Boolean AreFrtSamplingProblems ( ComplexAmplitude  ca,
double  distance 
)
static

Checks for sampling problems of the propagation core during Fresnel Propagation. the function takes into account a present separate spherical phase factor too. The SphericalPhaseRadius is approximated as a quadratic phase factor in accordance of the paraxial approximation of the Fresnel Propagation.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
Returns
Result of operation.

◆ AreFrtSamplingProblems() [2/2]

static Boolean AreFrtSamplingProblems ( ComplexAmplitude  ca,
double  distance,
double  samplingFactor 
)
static

Checks for sampling problems of the propagation core during Fresnel Propagation. the function takes into account a present separate spherical phase factor too. The SphericalPhaseRadius is approximated as a quadratic phase factor in accordance of the paraxial approximation of the Fresnel Propagation.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
samplingFactorThe sampling factor indicates how much the number of sampling points per array size will be increased before the propagation. This will reduce the numerical errors.
Returns
Result of operation.

◆ AreRayleighSommerfeldSamplingProblems()

static Boolean AreRayleighSommerfeldSamplingProblems ( ComplexAmplitude  ca,
double  distance 
)
static

Checks for sampling problems of the propagation core during Rayleigh-Sommerfeld convolution propagation and for sampling problems of the spherical phase factor.

Parameters
caComplexAmplitude to be propagated
distancePropagation distance in meters
Returns
Result of operation.

◆ AreSpwSamplingProblems()

static Boolean AreSpwSamplingProblems ( ComplexAmplitude  ca,
double  distance 
)
static

Checks for sampling problems of the propagation core during Spectrum of Plane Waves propagation and additionally for sampling problems of a possibly present spherical phase factor. If the propagation core of the spherical phase factor is undersampled numerical errors will occur during the propagation.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
Returns
Result of operation.

◆ Frt() [1/2]

static void Frt ( ComplexAmplitude  ca,
double  distance,
Complex  n,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude the specified distance by computing the Fresnel transform. The ComplexAmplitude ca is changed during the propagation.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
nComplex refractive index of the homogeneous medium.
areSamplingProblemsIndicates whether sampling problems can occur in the propagated field. Returned by reference.

◆ Frt() [2/2]

static void Frt ( ComplexAmplitude  ca,
double  distance,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude the specified distance by computing the Fresnel transform. The ComplexAmplitude ca is changed during the propagation.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
areSamplingProblemsIndicates whether sampling problems can occur in the propagated field. Returned by reference.

◆ RayleighSommerfeldConvolution() [1/2]

static void RayleighSommerfeldConvolution ( ComplexAmplitude  ca,
double  distance,
bool  invert,
Complex  n,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreRayleighSommerfeldSamplingProblems to check for numerical errors before propagating.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
invertflag that indicates if propagation shall be inverse
nComplex refractive index of the homogeneous medium.
areSamplingProblemsIndicates whether sampling problems can occur in the propagated field.

◆ RayleighSommerfeldConvolution() [2/2]

static void RayleighSommerfeldConvolution ( ComplexAmplitude  ca,
double  distance,
Complex  n,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude by the specified distance by a convolution of the complex amplitude and the propagation core (Rayleigh-Sommerfeld integral). The convolution is calculated in the frequency domain. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreRayleighSommerfeldSamplingProblems to check for numerical errors before propagating.

Parameters
caComplexAmplitude to be propagated
distancePropagation distance in meters.
nComplex refractive index of the homogeneous medium.
areSamplingProblemsIndicates if sampling problems can occur in the propagated field.

◆ RayleighSommerfeldCore()

static ComplexAmplitude RayleighSommerfeldCore ( SamplingParameters  samplingParameters,
double  distance,
double  Wavelength,
Complex  n 
)
static

Generates the propagation core for the Rayleigh-Sommerfeld convolution.

Parameters
samplingParametersContains information about the number of sampling points and the sampling distance.
distancePropagation distance.
WavelengthWavelength
nRefractive index of the homogeneous medium.
Returns
The ComplexAmplitude with the propagation core.

◆ Spw() [1/3]

static void Spw ( ComplexAmplitude  ca,
double  distance,
bool  invert,
Complex  n,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating.

Parameters
caThe complex amplitude to be propagated
distanceThe propagation distance in meters
invertflag that indicates if propagation shall be inverse
nRefractive index of the homogeneous medium.
areSamplingProblemsindicates if sampling problems can occur in the propagated field

◆ Spw() [2/3]

static void Spw ( ComplexAmplitude  ca,
double  distance,
Complex  n,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
nComplex refractive index of the homogeneous medium.
areSamplingProblemsIndicates whether sampling problems can occur in the propagated field.

◆ Spw() [3/3]

static void Spw ( ComplexAmplitude  ca,
double  distance,
out Boolean  areSamplingProblems 
)
static

Propagates the given ComplexAmplitude by the specified distance by computing the Angular Spectrum of Plane Waves. The ComplexAmplitude ca is changed during the propagation. The function ignores present separate spherical phase factors. Because of this additional numerical errors may occur during the propagation. Use AreSpwSamplingProblems to check for numerical errors before propagating.

Parameters
caComplexAmplitude to be propagated.
distancePropagation distance in meters.
areSamplingProblemsIndicates whether sampling problems can occur in the propagated field.