Grating2D: most important functions


most important functions

 Grating2D::Grating2D (int)
 initialise the grating:
 Grating2D::~Grating2D ()
const Grating2DGrating2D::operator= (Grating2D &)
 assign a grating (includes all layers)
void Grating2D::setParameters (int, double, double, Vector< double >, double, double, double, complex< double >, complex< double >)
 set required parameters needed for the calculations
void Grating2D::setTransPt (Vector< double >, Vector< double >)
 set the transition points of the rows and columns
void Grating2D::setTransPt (void)
 set the transition points to a regular grid
void Grating2D::setRefInd (vector< Matrix< complex< double > > >)
 set the refractive index of all layers
void Grating2D::setIncid (Matrix< complex< double > >, Matrix< complex< double > >)
 set the Fourier coefficients of the incident light
Matrix< complex< double > > Grating2D::getIncid (string)
 get the Fourier coefficients of the incident light
void Grating2D::solve (void)
 solve all layers and calculate S matrix
void Grating2D::setSMatrix (void)
 set the S-matrices (only R_ud, and T_dd) ([2]: equation 13a,b)
complex< double > Grating2D::getReflection (string, int, int)
complex< double > Grating2D::getTransmission (string, int, int)
complex< double > Grating2D::getIncid (string, int, int)
complex< double > Grating2D::calcTransField (double, double, double, string)
 calculate the transmitted field
void Grating2D::calcEfficiencyR (void)
void Grating2D::calcEfficiencyT (void)
void Grating2D::writeField (string, string, string, double, int, int)
 write the field to a file
void Grating2D::writeParameters (string)
 write a file with the Transmission coefficients and one with all parameters (lambda, phi, etc.)
bool Grating2D::getMemsave (void)
 returns TRUE if the memory save mode is on
void Grating2D::setMemsave (bool)
 set the memory save mode
void Grating2D::minimiseMemory (void)
 reduce the memory

Function Documentation

void Grating2D::calcEfficiencyR ( void   )  [inherited]

void Grating2D::calcEfficiencyT ( void   )  [inherited]

complex< double > Grating2D::calcTransField ( double  x,
double  y,
double  z,
string  pol 
) [inherited]

calculate the transmitted field

the field at position (x,y,z) with polarization in "x" or "y"

Parameters:
x the x coordinate (fraction of periodX)
y y coordinate (fraction of periodY)
z the z coordinate (in micro meter)
pol the polarisation (x or y)

Definition at line 574 of file Grating2D.cpp.

References Grating2D::alpha_3, Grating2D::beta_3, Grating2D::gamma_3, I, Grating2D::nOrds, Grating2D::nOrdsSq, and Grating2D::trans.

Referenced by Grating2D::writeField().

complex< double > Grating2D::getIncid ( string  pol,
int  row,
int  column 
) [inherited]

Parameters:
pol the polarisation ("x" or "y")
row the row of the matrix (first index)
column the column of the matrix (second index)

Definition at line 306 of file Grating2D.cpp.

References Grating2D::incid, Grating2D::nOrds, and Grating2D::nOrdsSq.

Matrix< complex< double > > Grating2D::getIncid ( string  pol  )  [inherited]

get the Fourier coefficients of the incident light

Parameters:
pol the polarisation ("x" or "y")
Returns:
Matrix with the Fourier coefficients of the incident light

Definition at line 377 of file Grating2D.cpp.

References Grating2D::incid, Grating2D::nOrds, and Grating2D::nOrdsSq.

bool Grating2D::getMemsave ( void   )  [inherited]

returns TRUE if the memory save mode is on

Definition at line 185 of file Grating2D.cpp.

References Grating2D::memorysave.

Referenced by Grating2D::operator=().

complex< double > Grating2D::getReflection ( string  pol,
int  row,
int  column 
) [inherited]

Parameters:
pol the polarisation ("x" or "y")
row the row of the matrix (first index)
column the column of the matrix (second index)

Definition at line 274 of file Grating2D.cpp.

References Grating2D::nOrds, Grating2D::nOrdsSq, and Grating2D::ref.

Referenced by Grating2D::calcEfficiencyR().

complex< double > Grating2D::getTransmission ( string  pol,
int  row,
int  column 
) [inherited]

Parameters:
pol the polarisation ("x" or "y")
row the row of the matrix (first index)
column the column of the matrix (second index)

Definition at line 290 of file Grating2D.cpp.

References Grating2D::nOrds, Grating2D::nOrdsSq, and Grating2D::trans.

Referenced by Grating2D::calcEfficiencyT().

Grating2D::Grating2D ( int  layers  )  [inherited]

initialise the grating:

Parameters:
layers number of layers

Definition at line 39 of file Grating2D.cpp.

References Grating2D::layer, Grating2D::mu, Grating2D::nLayers, and Grating2D::setMemsave().

void Grating2D::minimiseMemory ( void   )  [inherited]

reduce the memory

Resize all arrays to zero that are not urgently needed. Keep all parameters such as transition points, refractive index and the R and T matrix as well as the transition and reflection orders

Definition at line 103 of file Grating2D.cpp.

References Grating2D::G, Grating2D::layer, Grating2D::nLayers, Grating2D::Q12, Grating2D::Q2, Grating2D::R_tilde, Grating2D::T_tilde, Grating2D::tau, Grating2D::W21, and Grating2D::W23.

const Grating2D & Grating2D::operator= ( Grating2D in  )  [inherited]

void Grating2D::setIncid ( Matrix< complex< double > >  x,
Matrix< complex< double > >  y 
) [inherited]

set the Fourier coefficients of the incident light

input is a 2D pointer with dimension (nOrds * nOrds), the first index represents x, the second one y. The coefficients go from -(nOrds-1)/2 to +(nOrds-1)/2 where the (0,0)th coefficient is incid[(nOrds-1)/2][(nOrds-1)/2]

Parameters:
x the x-component of the electric field
y the y-component of the electric field

Definition at line 353 of file Grating2D.cpp.

References Grating2D::alpha_1, Grating2D::beta_1, Grating2D::gamma_1, Grating2D::incid, Grating2D::k1, Grating2D::nOrds, Grating2D::nOrdsSq, and norm().

void Grating2D::setMemsave ( bool  b  )  [inherited]

set the memory save mode

Definition at line 177 of file Grating2D.cpp.

References Grating2D::layer, Grating2D::memorysave, and Grating2D::nLayers.

Referenced by Grating2D::Grating2D(), and Grating2D::operator=().

void Grating2D::setParameters ( int  ords,
double  pX,
double  pY,
Vector< double >  thick,
double  lam,
double  angleZ,
double  angleX,
complex< double >  ref1,
complex< double >  ref3 
) [inherited]

set required parameters needed for the calculations

this funcion set the parameters for the DEO and all layers

Parameters:
ords number of spatial Fourier orders in x and y =>truncation^2 coefficients
pX grating size in x [my]
pY grating size in y [my]
thick array of the layer thickness [my]
lam incident wavelength [my]
angleZ incident angle in respect to the z axis: theta [degree] ([3], Fig1)
angleX incident angle in respect to the x axis: phi [degree] ([3], Fig1)
ref1 refractive index in region 0
ref3 refractive index in region 3

Definition at line 127 of file Grating2D.cpp.

References Grating2D::calcAlphaBetaGamma(), Grating2D::lambda, Grating2D::layer, Grating2D::n1, Grating2D::nLayers, Grating2D::nOrds, Grating2D::periodX, Grating2D::periodY, Grating2D::phi, Grating2D::setLambda(), Grating2D::setN1(), Grating2D::setN3(), Grating2D::setnOrds(), Grating2D::setPhi(), Grating2D::setSizeX(), Grating2D::setSizeY(), Grating2D::setTheta(), and Grating2D::theta.

void Grating2D::setRefInd ( vector< Matrix< complex< double > > >  N  )  [inherited]

set the refractive index of all layers

Definition at line 170 of file Grating2D.cpp.

References Grating2D::layer, and Grating2D::nLayers.

void Grating2D::setSMatrix ( void   )  [inherited]

void Grating2D::setTransPt ( void   )  [inherited]

set the transition points to a regular grid

Set the transition points to a regular grid; all pixels have the same dimensions

Definition at line 152 of file Grating2D.cpp.

References Grating2D::layer, Grating2D::nLayers, Grating2D::periodX, and Grating2D::periodY.

Referenced by Grating2D::setTransPt().

void Grating2D::setTransPt ( Vector< double >  tX,
Vector< double >  tY 
) [inherited]

set the transition points of the rows and columns

Definition at line 144 of file Grating2D.cpp.

References Grating2D::layer, Grating2D::nLayers, and Grating2D::setTransPt().

void Grating2D::solve ( void   )  [inherited]

solve all layers and calculate S matrix

Definition at line 391 of file Grating2D.cpp.

References Grating2D::calcEfficiencyR(), Grating2D::calcEfficiencyT(), Grating2D::layer, Grating2D::nLayers, and Grating2D::setSMatrix().

void Grating2D::writeField ( string  filename,
string  refTrans,
string  pol,
double  z,
int  pointsX,
int  pointsY 
) [inherited]

write the field to a file

Parameters:
filename the path to the file
refTrans transmitted or reflected field ("t" or "r")
pol the polarization ("x" or "y")
z distance from back plane or the element (in micro meter)
pointsX number of points in x
pointsY number of points in y

Definition at line 601 of file Grating2D.cpp.

References Grating2D::calcTransField(), norm(), Grating2D::periodX, and Grating2D::periodY.

void Grating2D::writeParameters ( string  filename  )  [inherited]

write a file with the Transmission coefficients and one with all parameters (lambda, phi, etc.)

Definition at line 618 of file Grating2D.cpp.

References imag(), Grating2D::lambda, Grating2D::layer, Grating2D::n1, Grating2D::n3, Grating2D::nOrds, Grating2D::nOrdsSq, Grating2D::periodX, Grating2D::periodY, Grating2D::phi, real(), Grating2D::ref, Grating2D::theta, and Grating2D::trans.

Grating2D::~Grating2D (  )  [inherited]

Definition at line 48 of file Grating2D.cpp.


Generated on Thu May 7 16:28:03 2009 for FMM by  doxygen 1.5.5