Table of Contents

Class OrderInfoWithDirection

Namespace
VirtualLabAPI.Core.RigorousAnalysis
Assembly
VirtualLabAPI.dll

Special OrderInfo class which stores not only order number, Rayleigh coefficients, and diffraction efficiency, but also the direction of a diffraction order.

[Serializable]
public class OrderInfoWithDirection : OrderInfo, IEquatable<IObjectBase>, ICloneable
Inheritance
ObjectBase
SerializableObjectBase
OrderInfo
OrderInfoWithDirection
Implements
IEquatable<IObjectBase>
Inherited Members

Constructors

OrderInfoWithDirection(WaveVector, Vector3C, double, int, int, Vector3D?)

Initializes a new instance of the OrderInfoWithDirection class.

public OrderInfoWithDirection(WaveVector direction, Vector3C rayleighCoefficients, double efficiency, int m, int n = 0, Vector3D? normalVector = null)

Parameters

direction WaveVector

The direction of the order as wave vector. You must ensure that negative wave vector components (relative to the wave vector of the zeroth order) correspond to negative order numbers.

rayleighCoefficients Vector3C

The Rayleigh coefficients (Ex, Ey, and Ez) of the order.

efficiency double

The diffraction efficiency of the order.

m int

The number of the order in x-direction.

n int

The number of the order in y-direction. Can be omitted if the results have been calculated for a system having no modulation in y-direction.

normalVector Vector3D?

The normal vector of the grating from which this order derives. If this optional parameter is not specified, (0; 0; 1) is assumed which is mostly correct. (The orders are specified in the coordinate system of the grating and the surfaces of the grating component are plane interfaces (with a stack on it).

OrderInfoWithDirection(OrderInfoWithDirection)

Copy Constructor.

public OrderInfoWithDirection(OrderInfoWithDirection objectToCopy)

Parameters

objectToCopy OrderInfoWithDirection

The object to copy.

Properties

CartesianAngleAlpha

Gets the Cartesian angle α.

public double CartesianAngleAlpha { get; }

Property Value

double

CartesianAngleBeta

Gets the Cartesian angle β.

public double CartesianAngleBeta { get; }

Property Value

double

Direction

Gets and sets the direction of the order as wave vector.

public WaveVector Direction { get; }

Property Value

WaveVector

IsEvanescent

Gets whether the order is evanescent

public bool IsEvanescent { get; }

Property Value

bool

PositionInOneMeterDistance

Gets the position of the order in 1 meter distance from the grating.

public VectorD PositionInOneMeterDistance { get; }

Property Value

VectorD

RayleighCoefficientTE

Gets the Rayleigh coefficient for TE-polarization.

public Complex RayleighCoefficientTE { get; }

Property Value

Complex

RayleighCoefficientTM

Gets the Rayleigh coefficient for TM-polarization.

public Complex RayleighCoefficientTM { get; }

Property Value

Complex

SphericalAnglePhi

Gets the spherical angle φ.

public double SphericalAnglePhi { get; }

Property Value

double

SphericalAngleTheta

Gets the spherical angle θ.

public double SphericalAngleTheta { get; }

Property Value

double

Methods

Equals(object, EqualityIntent)

Determines whether the specified object is equal to this instance.

public override bool Equals(object otherObject, EqualityIntent equalityIntent)

Parameters

otherObject object

The object to compare with this instance.

equalityIntent EqualityIntent

Defines what kind of equality you want to check when comparing two objects, for example all values or just physical equality.

Returns

bool

true if the specified object is equal to this instance; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.

SetDirection(WaveVector, WaveVector)

Sets the direction.

public void SetDirection(WaveVector newDirection, WaveVector waveVectorZerothOrder)

Parameters

newDirection WaveVector

The new direction.

waveVectorZerothOrder WaveVector

The wave vector of the zeroth order.