Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- deleteall;
- wg_thickness = 1e-6;
- wg_width = 5e-6;
- wg_len = 30e-6;
- facet_x = 6e-6;
- bg_ndx = 3.513131;
- wg_ndx = 3.522881;
- facet_theta = 4.02949;#13.8;
- AR_thickness = 5.79744e-07;#1040e-9 / 4;
- AR_index = 1.47003;#sqrt(bg_ndx);
- FD_R = 1.1e-5;
- addrect;
- set("name","WG_core");
- set("x min", -4e-6);
- set("x max", -4e-6+wg_len);
- set("y min", -wg_width/2);
- set("y max", wg_width/2);
- set("z", 0);
- set("z span", wg_thickness);
- set("override mesh order from material database",1);
- set("mesh order",4);
- set("material","<Object defined dielectric>");
- set("index", wg_ndx);
- #set("first axis","z");
- #set("rotation 1",facet_theta);
- vtx = [facet_x,-20e-6;wg_len,-20e-6;wg_len,20e-6;facet_x,20e-6];
- addpoly;
- set("name","facet_air");
- set("vertices",vtx);
- set("x", -3e-6);
- set("y", 0);
- set("z", 0);
- set("z span", 3*wg_thickness);
- set("override mesh order from material database",1);
- set("mesh order",2);
- set("material","<Object defined dielectric>");
- set("index", 1.0);
- theta = facet_theta * pi / 180;
- vtx_prime = [0,0; 0,0; 0,0; 0,0];
- for (i = 1 : 4) {
- vtx_prime(i,1) = vtx(i,1)*cos(theta)-vtx(i,2)*sin(theta);
- vtx_prime(i,2) = vtx(i,1)*sin(theta)+vtx(i,2)*cos(theta);
- }
- set("vertices",vtx_prime);
- vtx = [facet_x,-20e-6;facet_x+AR_thickness,-20e-6;facet_x+AR_thickness,20e-6;facet_x,20e-6];
- addpoly;
- set("name","AR_coating");
- set("vertices",vtx);
- set("x", -3e-6);
- set("y", 0);
- set("z", 0);
- set("z span", 3*wg_thickness);
- set("override mesh order from material database",1);
- set("mesh order",1);
- set("material","<Object defined dielectric>");
- set("index", AR_ndx);
- theta = facet_theta * pi / 180;
- vtx_prime = [0,0; 0,0; 0,0; 0,0];
- for (i = 1 : 4) {
- vtx_prime(i,1) = vtx(i,1)*cos(theta)-vtx(i,2)*sin(theta);
- vtx_prime(i,2) = vtx(i,1)*sin(theta)+vtx(i,2)*cos(theta);
- }
- set("vertices",vtx_prime);
- #addrect;
- #set("name","facet_air");
- #set("x min", facet_x+AR_thickness);
- #set("x max", wg_len);
- #set("y min", -20e-6);
- #set("y max", 20e-6);
- #set("z", 0);
- #set("z span", 3*wg_thickness);
- #set("override mesh order from material database",1);
- #set("mesh order",1);
- #set("material","<Object defined dielectric>");
- #set("index", 1.0);
- #set("first axis","z");
- #set("rotation 1",facet_theta);
- #addrect;
- #set("name","AR_coating");
- #set("x min", facet_x);
- #set("x max", facet_x+AR_thickness);
- #set("y min", -20e-6);
- #set("y max", 20e-6);
- #set("z", 0);
- #set("z span", 3*wg_thickness);
- #set("override mesh order from material database",1);
- #set("mesh order",1);
- #set("material","<Object defined dielectric>");
- #set("index", 1.0);
- #set("first axis","z");
- #set("rotation 1",facet_theta);
- addfdtd;
- set("dimension", 1);
- set("x min", -2e-6);
- set("x max", FD_R);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- set("z", 0);
- set("x min bc", "PML");
- set("x max bc", "PML");
- set("y min bc", "PML");
- set("y max bc", "PML");
- setnamed("::model::FDTD","mesh accuracy", 6);
- setnamed("::model::FDTD","index", bg_ndx);
- set("global source center wavelength", 1.04e-6);
- set("global source wavelength span", 0);
- set("global monitor frequency points", 1);
- addport();
- set("name","input_port");
- set("injection axis","x");
- set("direction", "Forward");
- set("x", -1e-6);
- set("z", 0);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- set("mode selection","Fundamental TE");
- addport();
- set("name","input_reflection_port");
- set("injection axis","x");
- set("direction", "Backward");
- set("x", -1.5e-6);
- set("z", 0);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- addport();
- set("name","air_port");
- set("injection axis","x");
- set("direction", "Forward");
- set("x", facet_x+4e-6);
- set("z", 0);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- addpower;
- set("monitor type","2D Z-normal");
- set("x min", -2e-6);
- set("x max", FD_R);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- set("z", 0);
- addindex;
- set("monitor type","2D Z-normal");
- set("x min", -2e-6);
- set("x max", FD_R);
- set("y min", -2*wg_width);
- set("y max", 2*wg_width);
- set("z", 0);
Advertisement
Add Comment
Please, Sign In to add comment