#ifndef WMMGLOB_H #define WMMGLOB_H /* * WMM - Wave-matching method for mode analysis of dielectric waveguides * https://wmm.computational-photonics.eu/ */ /* * wmmglob.h * Global WMM analysis parameters */ /* symmetry dependencies on each rectangle */ #define CALC 0 #define VSYM 1 #define VASY 2 #define IDSY 3 #define IDAS 4 /* orientation of edges */ #define HOR 0 #define VER 1 /* global WMM analysis parameters */ extern Waveguide Wg; // waveguide structure under investigation extern Polarization Pol; // polarization mode extern Symmetry Sym; // prescribed modal symmetry extern double Neffmin; // interval for extern double Neffmax; // the propagation constant search extern WMM_Parameters Par; // less specific parameters extern double K0; // vacuum wavenumber extern double Invomep0; // 1/omega/epsilon_0 [V*um/A] extern double Invommu0; // 1/omega/mu_0 [A*um/V] extern FILE *Log; // logfile: values of the lsq field mismatch // vs. Beta extern double Beta; // propagation constant, current trial value extern double SDBeta; // trial value for spectral discretization extern Imatrix Rtyp; // rectangle types extern Imatrix Styp; // symmetry dependencies extern Dmatrix Swf; // normalization weighting factors, symmet. dep. extern int Crim; // y-index of the center rectangles // edges connecting rectangles: extern int NumVk; // number extern Ivector Vktyp; // orientation extern Dvector Vkbeg; // coordinates extern Dvector Vkend; // extern Dvector Vkcor; // extern Imatrix Nrxi; // indices of neighboring rectangles extern Imatrix Nryi; // indices of neighboring rectangles extern Dvector Vkswf; // symmetry weighting factors extern int AmDim; // current dimension of the amplitude matrices extern double* Amat; // amplitude matrix extern double* AmVec; // amplitude vector extern Trifunfield Phi; // mode field prototype #endif // WMMGLOB_H