@@ -174,53 +174,50 @@ def postprocess_adj(
174174 else :
175175 eps_background = None
176176
177- # auto permittivity detection for non-box geometries
178- if not isinstance (structure .geometry , td .Box ):
179- sim_orig = sim_data_orig .simulation
180- plane_eps = eps_fwd .monitor .geometry
181-
182- sim_orig_grid_spec = td .components .grid .grid_spec .GridSpec .from_grid (sim_orig .grid )
183-
184- # permittivity without this structure
185- structs_no_struct = list (sim_orig .structures )
186- structs_no_struct .pop (structure_index )
187- sim_no_structure = sim_orig .updated_copy (
188- structures = structs_no_struct , monitors = [], sources = [], grid_spec = sim_orig_grid_spec
177+ # auto permittivity detection
178+ sim_orig = sim_data_orig .simulation
179+ plane_eps = eps_fwd .monitor .geometry
180+
181+ sim_orig_grid_spec = td .components .grid .grid_spec .GridSpec .from_grid (sim_orig .grid )
182+
183+ # permittivity without this structure
184+ structs_no_struct = list (sim_orig .structures )
185+ structs_no_struct .pop (structure_index )
186+ sim_no_structure = sim_orig .updated_copy (
187+ structures = structs_no_struct , monitors = [], sources = [], grid_spec = sim_orig_grid_spec
188+ )
189+
190+ eps_no_structure_data = [
191+ sim_no_structure .epsilon (box = plane_eps , coord_key = "centers" , freq = f )
192+ for f in adjoint_frequencies
193+ ]
194+
195+ eps_no_structure = xr .concat (eps_no_structure_data , dim = "f" ).assign_coords (
196+ f = adjoint_frequencies
197+ )
198+
199+ if structure .medium .is_pec :
200+ eps_inf_structure = None
201+ else :
202+ # permittivity with infinite structure
203+ structs_inf_struct = list (sim_orig .structures )[structure_index + 1 :]
204+ sim_inf_structure = sim_orig .updated_copy (
205+ structures = structs_inf_struct ,
206+ medium = structure .medium ,
207+ monitors = [],
208+ sources = [],
209+ grid_spec = sim_orig_grid_spec ,
189210 )
190211
191- eps_no_structure_data = [
192- sim_no_structure .epsilon (box = plane_eps , coord_key = "centers" , freq = f )
212+ eps_inf_structure_data = [
213+ sim_inf_structure .epsilon (box = plane_eps , coord_key = "centers" , freq = f )
193214 for f in adjoint_frequencies
194215 ]
195216
196- eps_no_structure = xr .concat (eps_no_structure_data , dim = "f" ).assign_coords (
217+ eps_inf_structure = xr .concat (eps_inf_structure_data , dim = "f" ).assign_coords (
197218 f = adjoint_frequencies
198219 )
199220
200- if structure .medium .is_pec :
201- eps_inf_structure = None
202- else :
203- # permittivity with infinite structure
204- structs_inf_struct = list (sim_orig .structures )[structure_index + 1 :]
205- sim_inf_structure = sim_orig .updated_copy (
206- structures = structs_inf_struct ,
207- medium = structure .medium ,
208- monitors = [],
209- sources = [],
210- grid_spec = sim_orig_grid_spec ,
211- )
212-
213- eps_inf_structure_data = [
214- sim_inf_structure .epsilon (box = plane_eps , coord_key = "centers" , freq = f )
215- for f in adjoint_frequencies
216- ]
217-
218- eps_inf_structure = xr .concat (eps_inf_structure_data , dim = "f" ).assign_coords (
219- f = adjoint_frequencies
220- )
221- else :
222- eps_no_structure = eps_inf_structure = None
223-
224221 # compute bounds intersection
225222 struct_bounds = rmin_struct , rmax_struct = structure .geometry .bounds
226223 rmin_sim , rmax_sim = sim_data_orig .simulation .bounds
0 commit comments