BSLAMARR |
BSlabModeArray |
---|
int num BSlabModeP mvec[MAXNUMSLABMODES] |
BSlabModeArray() ~BSlabModeArray() BSlabModeArray(const BSlabModeArray& ma) BSlabModeArray& operator=(const BSlabModeArray& s) void clear() void read(FILE *dat) void read_def(char ext0, char ext1) void write(FILE *dat) void write_def(char ext0, char ext1) BSlabMode& operator()(int i) BSlabMode operator()(int i) void add(BSlabMode m) void remove(int i) void merge(char& nma) void sort() Complex field(const Cvector& amp, Fcomp cp, double r, double phi) Complex field_cart(const Cvector& amp, Fcomp cp, double x, double z) void plot(const Cvector& amp, Fcomp cp, Afo foa,double xbeg, double xend, int npx, double zbeg, double zend, int npz, char ext0, char ext1) void movie(const Cvector& amp, double xbeg, double xend, int npx, duble zbeg, double zend, int npz, int ntfr, char ext0, char ext1) Complex orthogonality(int mode_p, int mode_q, double r0, double r1, int dl) Complex orthofun(int mode_p, int mode_q, double r) |
int num
Number of bent modes included
BSlabModeP mvec[MAXNUMSLABMODES]
Array of pointers of bent modes
BSlabModeArray()
Default constructor
~BSlabModeArray()
Destructor
BSlabModeArray(const BSlabModeArray& ma)
Copy constructor
BSlabModeArray& operator=(const BSlabModeArray& s)
Assignment
void clear()
Free allocated memory
void read(FILE *dat)
Input from FILE dat
void read_def(char ext0, char ext1)
Input from file with default name
void write(FILE *dat)
Output to FILE dat
void write_def(char ext0, char ext1)
Output to file with default name
BSlabMode& operator()(int i)
Subscripting
BSlabMode operator()(int i)
Subscripting
void add(BSlabMode m)
Add a mode
void remove(int i)
Delete a mode entry
void merge(char& nma)
Add an entire "BSlabModeArray nma", "nma" is cleared.
void sort()
Sort the array by effective mode indices, highest first.
Complex field(const Cvector& amp, Fcomp cp, double r, double phi)
Field superposition at point (r, phi)
amp: complex amplitudes at phi=0
amplitudes evolve according to amp_j(phi) = amp_j(0)*exp(-i gamma_j*phi)
cp: ER, EY, EP, HR, HY, HP, SR, SY, SP; EX, EZ, HX, HZ, SX, SZ
Complex field_cart(const Cvector& amp, Fcomp cp, double x, double z)
Field superposition at point (x, z),
amp: complex amplitudes at phi=0
amplitudes evolve according to
amp_j(phi) = amp_j(0)*exp(-i gamma_j*R*phi)
cp: ER, EY, EP, HR, HY, HP, SR, SY, SP; EX, EZ, HX, HZ, SX, SZ
void plot(const Cvector& amp, Fcomp cp, Afo foa,double xbeg, double xend, int npx, double zbeg, double zend, int npz, char ext0, char ext1)
Visualization: output to MATLAB .m files
interference pattern on theplane xbeg < = x < = xend, zbeg <= z <= zend,
image plot corresponding to field component cp
cp: ER, EY, EP, HR, HY, HP, SR, SY, SP; EX, EZ, HX, HZ, SX, SZ
foa: MOD, SQR, REP, IMP
amp: mode amplitudes at phi=0, respectively z=0
npx, npz: number of points in output mesh
ext0, ext1: filename id characters
void movie(const Cvector& amp, double xbeg, double xend, int npx, duble zbeg, double zend, int npz, int ntfr, char ext0, char ext1)
Animation of the light propagation along the waveguide bend,
the frames show the EY component (TE) resp. HY component (TM), at
ntfr equidistant times over one time period
amp: mode amplitude at phi=0, respectively z=0
xbeg, xend, zbeg, zend: x resp. z extensions of the plot window
npx, npz: number of plot points in the x and z directions
ntfr: number of frames per time period
ext0, ext1: filename id characters for the m.file
Complex orthogonality(int mode_p, int mode_q, double r0, double r1, int dl)
Check the orthogonality on the interval "L" which is divided into "dl" points.
Complex orthofun(int mode_p, int mode_q, double r)
Function used in orthogonality()