#include #include "bmsinc.h" int main() { double R=5.0; // Radius of bent waveguide int layer = 1; // no. of internal layer double d = 0.5; // width of bend waveguide core double lambda=1.1; // vaccume wavelength Dvector Bhx(layer+1); // locations of dielectric layer interfaces Dvector Bn(layer+2); // refractive indices for dielectric layers // dielectric layer interfaces are defined with respect to radius R Bhx(0) = -d; // inner layer position= R-d Bhx(1) = 0.0; // outer layer position= R Bn(0) = 1.0; // = n_s (cladding refractive index) Bn(1) = 1.5; // = n_f (core refractive index) Bn(2) = 1.0; // = n_c (cover refractive index) // Define bent waveguide BSlabWaveguide bwg(layer, Bhx, lambda, Bn, R); // Required parameters for mode solver BSLAMS_Parameters bpar; // Define container to hold modes of bent waveguide BSlabModeArray bma; // finding modes of BWG // Roots of dispersion equation are searched in complex plane // in region [b0, b1]x[a0, a1]. double b0 = 5.2; // lower limit for beta double b1 = 6.5; // upper limit for beta double a0 = -6e-3; // lower limit for alpha double a1 = -1e-3; // upper limit for alpha int Nb = 10; // [b0, b1] is divided in Nb points. int Na = 6; // [a0, a1] is divided in Na points. // finding modes of bent waveguide in [b0, b1]x[a0, a1] int Nbm=bend_mode_analysis(bwg, TE, b0, b1, Nb, a0, a1,Na, bpar, bma); // to power normalise modes double tmp_totpower; for (int j= 0; j < Nbm; j++) { // compute total modal power using analytic method // at an angular posotion theta=0.0 tmp_totpower =bma(j).totpower(0.0); bma(j).normalize(tmp_totpower); // to normalize modal power } // Display propagation constants cout <<"\nPropagation constants of mode(s):\n"; for (int j= 0; j < Nbm; j++) { cout <<"Mode " << j <<"\t gamma=(" <