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

Method forward_run

python/adjoint/optimization_problem.py:262–294  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

260 )
261
262 def forward_run(self):
263 # set up monitors
264 self.prepare_forward_run()
265
266 # Forward run
267 if any(isinstance(m, LDOS) for m in self.objective_arguments):
268 self.sim.run(
269 mp.dft_ldos(self.frequencies),
270 *self.step_funcs,
271 until_after_sources=mp.stop_when_dft_decayed(
272 self.decay_by, self.minimum_run_time, self.maximum_run_time
273 ),
274 )
275 else:
276 self.sim.run(
277 *self.step_funcs,
278 until_after_sources=mp.stop_when_dft_decayed(
279 self.decay_by, self.minimum_run_time, self.maximum_run_time
280 ),
281 )
282
283 # record objective quantities from user specified monitors
284 self.results_list = [m() for m in self.objective_arguments]
285 # evaluate objectives
286 self.f0 = [fi(*self.results_list) for fi in self.objective_functions]
287 if len(self.f0) == 1:
288 self.f0 = self.f0[0]
289
290 # store objective function evaluation in memory
291 self.f_bank.append(self.f0)
292
293 # update solver's current state
294 self.current_state = "FWD"
295
296 def prepare_adjoint_run(self):
297 # Compute adjoint sources

Callers 1

__call__Method · 0.95

Calls 3

prepare_forward_runMethod · 0.95
dft_ldosMethod · 0.80
runMethod · 0.45

Tested by

no test coverage detected