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
-
ObjectBaseSerializableObjectBaseOrderInfoOrderInfoWithDirection
- 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
directionWaveVectorThe 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.
rayleighCoefficientsVector3CThe Rayleigh coefficients (Ex, Ey, and Ez) of the order.
efficiencydoubleThe diffraction efficiency of the order.
mintThe number of the order in x-direction.
nintThe 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.
normalVectorVector3D?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
objectToCopyOrderInfoWithDirectionThe object to copy.
Properties
CartesianAngleAlpha
Gets the Cartesian angle α.
public double CartesianAngleAlpha { get; }
Property Value
CartesianAngleBeta
Gets the Cartesian angle β.
public double CartesianAngleBeta { get; }
Property Value
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
PositionInOneMeterDistance
Gets the position of the order in 1 meter distance from the grating.
public VectorD PositionInOneMeterDistance { get; }
Property Value
RayleighCoefficientTE
Gets the Rayleigh coefficient for TE-polarization.
public Complex RayleighCoefficientTE { get; }
Property Value
RayleighCoefficientTM
Gets the Rayleigh coefficient for TM-polarization.
public Complex RayleighCoefficientTM { get; }
Property Value
SphericalAnglePhi
Gets the spherical angle φ.
public double SphericalAnglePhi { get; }
Property Value
SphericalAngleTheta
Gets the spherical angle θ.
public double SphericalAngleTheta { get; }
Property Value
Methods
Equals(object, EqualityIntent)
Determines whether the specified object is equal to this instance.
public override bool Equals(object otherObject, EqualityIntent equalityIntent)
Parameters
otherObjectobjectThe object to compare with this instance.
equalityIntentEqualityIntentDefines what kind of equality you want to check when comparing two objects, for example all values or just physical equality.
Returns
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
newDirectionWaveVectorThe new direction.
waveVectorZerothOrderWaveVectorThe wave vector of the zeroth order.