Beispiel #1
0
    def test_after_sources_and_time(self):
        sim = self.init_simple_simulation()

        done = [False]

        def _done(sim, todo):
            done[0] = True

        sim.run(mp.after_sources_and_time(1, _done), until_after_sources=2)

        self.assertTrue(done[0])
Beispiel #2
0
    def test_after_sources_and_time(self):
        sim = self.init_simple_simulation()

        done = [False]

        def _done(sim, todo):
            done[0] = True

        sim.run(mp.after_sources_and_time(1, _done), until_after_sources=2)

        self.assertTrue(done[0])
Beispiel #3
0
sim.k_point = mp.Vector3(x=4 / 3 * 0.8)

"""Guided or Leaky mode field"""

res = []


def slice_step(sim):
    ex = sim.get_array(center=mp.Vector3(), size=cell_size, component=mp.Ex)
    center_index = np.array(ex.shape) // 2
    res.append(ex[center_index[0], center_index[1], center_index[2]])


"""Configure harminv"""
h = mp.simulation.Harminv(source.component, source.center, f, df)
h.Q_thresh = 10

"""Coupling simulation & Spectral analysis"""
sim.run(
    # mp.at_beginning(mp.output_epsilon),
    mp.at_every(1 / 10, slice_step),
    mp.after_sources_and_time(50, h),
    until_after_sources=150)
np.save(res_dir / ('ex_f_%0.2f_ImEPS_%0.1f' % (f, eps2_cdse)), np.asarray(res))

"""Visualization"""
eps_data = sim.get_array(center=mp.Vector3(), size=cell_size, component=mp.Dielectric)
plot_slice(np.sqrt(eps_data))
plt.show()