MCPcopy Create free account
hub / github.com/NanoComp/meep / create_structure

Function create_structure

doc/docs/Developer_Codes/WriteChunkInfo.cpp:115–144  ·  view source on GitHub ↗

/ / /

Source from the content-addressed store, hash-verified

113/***************************************************************/
114/***************************************************************/
115structure create_structure(double resolution, int symmetries) {
116 double sx = 8.0; // size of cell in X direction
117 double sy = 6.0; // size of cell in Y direction
118 double w = 3.0; // width of waveguide
119 double dpml = 1.0; // PML thickness
120
121 geometry_lattice.size.x = sx;
122 geometry_lattice.size.y = sy;
123 geometry_lattice.size.z = 0.0;
124 grid_volume gv = voltwo(sx, sy, resolution);
125 gv.center_origin();
126 symmetry S = (symmetries == 1 ? mirror(Y, gv)
127 : symmetries == 2 ? mirror(X, gv) + mirror(Y, gv)
128 : symmetry());
129 structure the_structure(gv, dummy_eps, pml(dpml), S);
130
131 vector3 e1 = v3(1.0, 0.0, 0.0);
132 vector3 e2 = v3(0.0, 1.0, 0.0);
133 vector3 e3 = v3(0.0, 0.0, 1.0);
134 meep_geom::material_type dielectric = meep_geom::make_dielectric(12.0);
135
136 vector3 center = v3(0.0, 0.0, 0.0);
137 vector3 size = v3(sx, w, 0.0);
138 geometric_object objects[1];
139 objects[0] = make_block(dielectric, center, e1, e2, e3, size);
140 geometric_object_list g = {1, objects};
141 meep_geom::set_materials_from_geometry(&the_structure, g);
142
143 return the_structure;
144}
145
146/***************************************************************/
147/***************************************************************/

Callers 1

mainFunction · 0.85

Calls 8

voltwoFunction · 0.85
mirrorFunction · 0.85
symmetryClass · 0.85
pmlFunction · 0.85
make_dielectricFunction · 0.85
center_originMethod · 0.80
v3Function · 0.70

Tested by

no test coverage detected