Guest User

facet_reflection_code

a guest
Jul 27th, 2023
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. deleteall;
  2.  
  3. wg_thickness = 1e-6;
  4. wg_width = 5e-6;
  5. wg_len = 30e-6;
  6. facet_x = 6e-6;
  7. bg_ndx = 3.513131;
  8. wg_ndx = 3.522881;
  9. facet_theta = 4.02949;#13.8;
  10. AR_thickness = 5.79744e-07;#1040e-9 / 4;
  11. AR_index = 1.47003;#sqrt(bg_ndx);
  12. FD_R = 1.1e-5;
  13.  
  14. addrect;
  15. set("name","WG_core");
  16. set("x min", -4e-6);
  17. set("x max", -4e-6+wg_len);
  18. set("y min", -wg_width/2);
  19. set("y max", wg_width/2);
  20. set("z", 0);
  21. set("z span", wg_thickness);
  22. set("override mesh order from material database",1);
  23. set("mesh order",4);
  24. set("material","<Object defined dielectric>");
  25. set("index", wg_ndx);
  26. #set("first axis","z");
  27. #set("rotation 1",facet_theta);
  28.  
  29. vtx = [facet_x,-20e-6;wg_len,-20e-6;wg_len,20e-6;facet_x,20e-6];
  30. addpoly;
  31. set("name","facet_air");
  32. set("vertices",vtx);
  33. set("x", -3e-6);
  34. set("y", 0);
  35. set("z", 0);
  36. set("z span", 3*wg_thickness);
  37. set("override mesh order from material database",1);
  38. set("mesh order",2);
  39. set("material","<Object defined dielectric>");
  40. set("index", 1.0);
  41.  
  42. theta = facet_theta * pi / 180;
  43. vtx_prime = [0,0; 0,0; 0,0; 0,0];
  44. for (i = 1 : 4) {
  45. vtx_prime(i,1) = vtx(i,1)*cos(theta)-vtx(i,2)*sin(theta);
  46. vtx_prime(i,2) = vtx(i,1)*sin(theta)+vtx(i,2)*cos(theta);
  47. }
  48. set("vertices",vtx_prime);
  49.  
  50. vtx = [facet_x,-20e-6;facet_x+AR_thickness,-20e-6;facet_x+AR_thickness,20e-6;facet_x,20e-6];
  51. addpoly;
  52. set("name","AR_coating");
  53. set("vertices",vtx);
  54. set("x", -3e-6);
  55. set("y", 0);
  56. set("z", 0);
  57. set("z span", 3*wg_thickness);
  58. set("override mesh order from material database",1);
  59. set("mesh order",1);
  60. set("material","<Object defined dielectric>");
  61. set("index", AR_ndx);
  62.  
  63. theta = facet_theta * pi / 180;
  64. vtx_prime = [0,0; 0,0; 0,0; 0,0];
  65. for (i = 1 : 4) {
  66. vtx_prime(i,1) = vtx(i,1)*cos(theta)-vtx(i,2)*sin(theta);
  67. vtx_prime(i,2) = vtx(i,1)*sin(theta)+vtx(i,2)*cos(theta);
  68. }
  69. set("vertices",vtx_prime);
  70.  
  71. #addrect;
  72. #set("name","facet_air");
  73. #set("x min", facet_x+AR_thickness);
  74. #set("x max", wg_len);
  75. #set("y min", -20e-6);
  76. #set("y max", 20e-6);
  77. #set("z", 0);
  78. #set("z span", 3*wg_thickness);
  79. #set("override mesh order from material database",1);
  80. #set("mesh order",1);
  81. #set("material","<Object defined dielectric>");
  82. #set("index", 1.0);
  83. #set("first axis","z");
  84. #set("rotation 1",facet_theta);
  85.  
  86. #addrect;
  87. #set("name","AR_coating");
  88. #set("x min", facet_x);
  89. #set("x max", facet_x+AR_thickness);
  90. #set("y min", -20e-6);
  91. #set("y max", 20e-6);
  92. #set("z", 0);
  93. #set("z span", 3*wg_thickness);
  94. #set("override mesh order from material database",1);
  95. #set("mesh order",1);
  96. #set("material","<Object defined dielectric>");
  97. #set("index", 1.0);
  98. #set("first axis","z");
  99. #set("rotation 1",facet_theta);
  100.  
  101. addfdtd;
  102. set("dimension", 1);
  103. set("x min", -2e-6);
  104. set("x max", FD_R);
  105. set("y min", -2*wg_width);
  106. set("y max", 2*wg_width);
  107. set("z", 0);
  108. set("x min bc", "PML");
  109. set("x max bc", "PML");
  110. set("y min bc", "PML");
  111. set("y max bc", "PML");
  112. setnamed("::model::FDTD","mesh accuracy", 6);
  113. setnamed("::model::FDTD","index", bg_ndx);
  114. set("global source center wavelength", 1.04e-6);
  115. set("global source wavelength span", 0);
  116. set("global monitor frequency points", 1);
  117.  
  118. addport();
  119. set("name","input_port");
  120. set("injection axis","x");
  121. set("direction", "Forward");
  122. set("x", -1e-6);
  123. set("z", 0);
  124. set("y min", -2*wg_width);
  125. set("y max", 2*wg_width);
  126. set("mode selection","Fundamental TE");
  127.  
  128. addport();
  129. set("name","input_reflection_port");
  130. set("injection axis","x");
  131. set("direction", "Backward");
  132. set("x", -1.5e-6);
  133. set("z", 0);
  134. set("y min", -2*wg_width);
  135. set("y max", 2*wg_width);
  136.  
  137. addport();
  138. set("name","air_port");
  139. set("injection axis","x");
  140. set("direction", "Forward");
  141. set("x", facet_x+4e-6);
  142. set("z", 0);
  143. set("y min", -2*wg_width);
  144. set("y max", 2*wg_width);
  145.  
  146. addpower;
  147. set("monitor type","2D Z-normal");
  148. set("x min", -2e-6);
  149. set("x max", FD_R);
  150. set("y min", -2*wg_width);
  151. set("y max", 2*wg_width);
  152. set("z", 0);
  153.  
  154. addindex;
  155. set("monitor type","2D Z-normal");
  156. set("x min", -2e-6);
  157. set("x max", FD_R);
  158. set("y min", -2*wg_width);
  159. set("y max", 2*wg_width);
  160. set("z", 0);
Advertisement
Add Comment
Please, Sign In to add comment