This tutorial demonstrates Meep's ability to compute classical forces via the Maxwell stress tensor. The geometry consists of two identical, parallel, silicon waveguides with square cross section in vacuum. A schematic of the geometry is shown below. Due to the parallel orientation of the waveguides (propagation axis along $z$ and separation in $x$), the two modes can be chosen to be either symmetric or anti-symmetric with respect to an $x$ mirror-symmetry plane between them. As the two waveguides are brought closer and closer together, their modes couple and give rise to a gradient force that is transverse to the waveguide axis (i.e., in the $x$ direction). This is different from radiation pressure which involves momentum exchange between photons and is longitudinal in nature (i.e., along the $z$ direction). An interesting phenomena that occurs for this coupled waveguide system is that the force can be tuned to be either attractive or repulsive depending on the relative phase of the two modes. This tutorial will demonstrate this effect.
The gradient force $F$ on each waveguide arising from the evanescent coupling of the two waveguide modes can be computed analytically:
$$F=-\frac{1}{\omega}\frac{d\omega}{ds}\Bigg\vert_\vec{k}U$$where $\omega$ is the mode frequency of the coupled waveguide system, $s$ is the separation distance between the parallel waveguides, $k$ is the conserved wave vector, and $U$ is the total energy of the electromagnetic fields. By convention, negative and positive values correspond to attractive and repulsive forces, respectively. For more details, see Optics Letters, Vol. 30, pp. 3042-4, 2005. This expression has been shown to be mathematically equivalent to the Maxwell stress tensor in Optics Express, Vol. 17, pp. 18116-35, 2009. We will verify this result in this tutorial. In this particular example, only the fundamental mode with odd mirror-symmetry in $y$ shows the bidirectional force.
It is convenient to normalize the force in order to work with dimensionless quantities. Since the total transmitted power in the waveguide per unit length is $P=v_gU/L$ where $v_g$ is the group velocity, $U$ is the total energy of the electromagnetic fields (same as before), and $L$ is the waveguide length, we focus instead on the force per unit length per unit power $(F/L)(ac/P)$ where $a$ is the waveguide width/height and $c$ is the speed of light. This dimensionless quantity can be computed in a single simulation.
The gradient force $F$ can be computed using two different methods: (1) using MPB, compute the frequency $\omega$ and group velocity $v_g$ for a given mode over a range of separation distances $s$ and then use a centered finite-difference scheme to evaluate $F$ using the formula from above, and (2) using Meep, directly compute both the gradient force $F$ and the transmitted power $P$ over the same range of separation distances $s$. This tutorial verifies that (1) and (2) produce equivalent results.
The main component of the Meep script is the function parallel_waveguide
which computes the force $F$ and transmitted power $P$ given the waveguide separation distance s
and relative phase of the waveguide modes xodd=True/False
. The eigenmode frequency $\omega$ is computed first using get_eigenmode
in order to specify the frequency of the add_force
and add_flux
monitors. (Note that when match_frequency=False
, get_eigenmode
ignores the input frequency
parameter.) An EigenModeSource
with eig_match_freq=False
is then used to launch the guided mode using a pulse (the frequency
but not the fwidth
parameter of GaussianSource
is ignored). Alternatively, a constant-amplitude point/area source can be used to launch the mode but this is less efficient as demonstrated in Tutorial/Eigenmode Source/Index-Guided Modes in a Ridge Waveguide. The waveguide has width/height of $a=1$ μm and a fixed propagation wavevector of $\pi/a$.
import meep as mp
import numpy as np
import matplotlib.pyplot as plt
resolution = 40 # pixels/μm
Si = mp.Medium(index=3.45)
dpml = 1.0
pml_layers = [mp.PML(dpml)]
sx = 5
sy = 3
cell = mp.Vector3(sx + 2 * dpml, sy + 2 * dpml, 0)
a = 1.0 # waveguide width/height
k_point = mp.Vector3(z=0.5)
def parallel_waveguide(s, xodd):
geometry = [
mp.Block(
center=mp.Vector3(-0.5 * (s + a)),
size=mp.Vector3(a, a, mp.inf),
material=Si,
),
mp.Block(
center=mp.Vector3(0.5 * (s + a)), size=mp.Vector3(a, a, mp.inf), material=Si
),
]
symmetries = [mp.Mirror(mp.X, phase=-1 if xodd else 1), mp.Mirror(mp.Y, phase=-1)]
sim = mp.Simulation(
resolution=resolution,
cell_size=cell,
geometry=geometry,
boundary_layers=pml_layers,
symmetries=symmetries,
k_point=k_point,
)
sim.init_sim()
EigenmodeData = sim.get_eigenmode(
0.22,
mp.Z,
mp.Volume(center=mp.Vector3(), size=mp.Vector3(sx, sy)),
2 if xodd else 1,
k_point,
match_frequency=False,
parity=mp.ODD_Y,
)
fcen = EigenmodeData.freq
print("freq:, {}, {}, {}".format("xodd" if xodd else "xeven", s, fcen))
sim.reset_meep()
eig_sources = [
mp.EigenModeSource(
src=mp.GaussianSource(fcen, fwidth=0.1 * fcen),
size=mp.Vector3(sx, sy),
center=mp.Vector3(),
eig_band=2 if xodd else 1,
eig_kpoint=k_point,
eig_match_freq=False,
eig_parity=mp.ODD_Y,
)
]
sim.change_sources(eig_sources)
flux_reg = mp.FluxRegion(
direction=mp.Z, center=mp.Vector3(), size=mp.Vector3(sx, sy)
)
wvg_flux = sim.add_flux(fcen, 0, 1, flux_reg)
force_reg1 = mp.ForceRegion(
mp.Vector3(0.49 * s), direction=mp.X, weight=1, size=mp.Vector3(y=sy)
)
force_reg2 = mp.ForceRegion(
mp.Vector3(0.5 * s + 1.01 * a), direction=mp.X, weight=-1, size=mp.Vector3(y=sy)
)
wvg_force = sim.add_force(fcen, 0, 1, force_reg1, force_reg2)
sim.run(until_after_sources=1500)
flux = mp.get_fluxes(wvg_flux)[0]
force = mp.get_forces(wvg_force)[0]
print(
"data:, {}, {}, {}, {}, {}".format(
"xodd" if xodd else "xeven", s, flux, force, -force / flux
)
)
sim.reset_meep()
return flux, force
There are four important items to note: (1) a single flux surface is used to compute the Poynting flux in $z$ which spans the entire non-PML region of the cell. This is because in the limit of small waveguide separation distance, two separate flux surfaces for each waveguide would overlap and result in overcounting. The total power through a single flux surface need, by symmetry, only be halved in order to determine the value for a single waveguide. (2) Instead of defining a closed, four-sided "box" surrounding the waveguides, the Maxwell stress tensor is computed using just two line monitors oriented in $y$ (to obtain the force in the perpendicular $x$ direction) with weight
values of +1
/-1
to correctly sum the total force. The force monitors are placed in the vacuum region adjacent to the waveguide rather than on its surface so that the fields are second-order accurate. By symmetry, the force in the $y$ direction is zero and need not be computed. (3) Since the parity
/eig_parity
parameter of get_eigenmode
/EigenModeSource
can only be specified using the $y$ and/or $z$ directions (but not $x$, the waveguide separation axis), the band
/eig_band
parameter must be set to 1
/2
to distinguish modes with even/odd $x$-mirror symmetry. (4) A 2d cell_size
in $xy$ combined with a k_point
containing a non-zero $z$ component results in a 2d simulation (which is the default).
In this example, the fields of the guided mode never decay away to zero. Choosing a runtime is therefore somewhat arbitrary but requires some care. A sufficiently long runtime is necessary to obtain the steady-state response. However, an excessively long runtime will lead to large values for the Fourier-transformed fields used to compute both the flux and the Maxwell stress tensor. Large floating-point numbers may contain roundoff errors and produce inaccurate results.
The simulation is run over the range of separation distances $s$ from 0.1 to 1.0 μm in increments of 0.1 μm. The results are compared with those from MPB. This is shown in the top figure. The two methods show good agreement.
s = np.arange(0.1, 1.1, 0.1)
fluxes_odd = np.zeros(s.size)
forces_odd = np.zeros(s.size)
fluxes_even = np.zeros(s.size)
forces_even = np.zeros(s.size)
for k in range(len(s)):
fluxes_odd[k], forces_odd[k] = parallel_waveguide(s[k], True)
fluxes_even[k], forces_even[k] = parallel_waveguide(s[k], False)
----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00295496 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0137441 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 239.38333333333333/366.6666717529297 = 65.3% done in 4.0s, 2.1s to go on time step 14404 (time=240.067), 0.000277733 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2337849185921515, -1.9695192598601073e-09, 59350757.150949866, 0.5581279688138194, -0.5553187433557634-0.055927836092732594i, 2.543717760177644e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.1, 0.2337849185921515 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00183916 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0193331 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.770666) = 0.233421 after 12 iters MPB solved for frequency_1(0,0,0.771882) = 0.233785 after 7 iters MPB solved for frequency_1(0,0,0.771882) = 0.233785 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.770666) = 0.233421 after 12 iters MPB solved for frequency_1(0,0,0.771882) = 0.233785 after 7 iters MPB solved for frequency_1(0,0,0.771882) = 0.233785 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 211.81666666666666/666.6666717529297 = 31.8% done in 4.0s, 8.6s to go on time step 12744 (time=212.4), 0.000313893 s/step Meep progress: 438.3333333333333/666.6666717529297 = 65.7% done in 8.0s, 4.2s to go on time step 26339 (time=438.983), 0.000294248 s/step Meep progress: 660.8666666666667/666.6666717529297 = 99.1% done in 12.0s, 0.1s to go on time step 39695 (time=661.583), 0.000299507 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00133109 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0117002 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 246.28333333333333/366.6666717529297 = 67.2% done in 4.0s, 2.0s to go on time step 14810 (time=246.833), 0.000270096 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.21436005656524434, 2.1977416545924374e-08, -4876825.629557369, 1.0437686932994705, -0.6908642657795828-0.7824063211534797i, 3.332567959460228e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.1, 0.21436005656524434 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00119805 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.55,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0203319 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.706409) = 0.214152 after 11 iters MPB solved for frequency_1(0,0,0.707103) = 0.21436 after 6 iters MPB solved for frequency_1(0,0,0.707103) = 0.21436 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.706409) = 0.214152 after 11 iters MPB solved for frequency_1(0,0,0.707103) = 0.21436 after 6 iters MPB solved for frequency_1(0,0,0.707103) = 0.21436 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 83.76666666666667/666.6666717529297 = 12.6% done in 4.0s, 27.8s to go on time step 5044 (time=84.0667), 0.000793118 s/step Meep progress: 168.71666666666667/666.6666717529297 = 25.3% done in 8.0s, 23.6s to go on time step 10144 (time=169.067), 0.000784439 s/step Meep progress: 255.01666666666665/666.6666717529297 = 38.3% done in 12.0s, 19.4s to go on time step 15324 (time=255.4), 0.000772402 s/step Meep progress: 340.3666666666667/666.6666717529297 = 51.1% done in 16.0s, 15.3s to go on time step 20446 (time=340.767), 0.000780987 s/step Meep progress: 424.3833333333333/666.6666717529297 = 63.7% done in 20.0s, 11.4s to go on time step 25484 (time=424.733), 0.00079398 s/step Meep progress: 509.8/666.6666717529297 = 76.5% done in 24.0s, 7.4s to go on time step 30615 (time=510.25), 0.00077967 s/step Meep progress: 594.2/666.6666717529297 = 89.1% done in 28.0s, 3.4s to go on time step 35680 (time=594.667), 0.000789747 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00357318 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0155571 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.31666666666666/366.6666717529297 = 26.5% done in 4.0s, 11.1s to go on time step 5854 (time=97.5667), 0.000683346 s/step Meep progress: 195.31666666666666/366.6666717529297 = 53.3% done in 8.0s, 7.0s to go on time step 11733 (time=195.55), 0.000680444 s/step Meep progress: 290.3666666666667/366.6666717529297 = 79.2% done in 12.0s, 3.2s to go on time step 17439 (time=290.65), 0.000701091 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2321007699342635, -6.589441383742643e-10, 176115664.75642273, 0.7050710049152503, -0.3914039769859229-0.5864537908239694i, 2.563795272483861e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.2, 0.2321007699342635 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00154901 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0192392 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.763979) = 0.231754 after 10 iters MPB solved for frequency_1(0,0,0.765136) = 0.232101 after 6 iters MPB solved for frequency_1(0,0,0.765136) = 0.232101 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.763979) = 0.231754 after 10 iters MPB solved for frequency_1(0,0,0.765136) = 0.232101 after 6 iters MPB solved for frequency_1(0,0,0.765136) = 0.232101 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 83.15/666.6666717529297 = 12.5% done in 4.0s, 28.1s to go on time step 5003 (time=83.3833), 0.000799551 s/step Meep progress: 168.0/666.6666717529297 = 25.2% done in 8.0s, 23.7s to go on time step 10096 (time=168.267), 0.000785392 s/step Meep progress: 252.48333333333332/666.6666717529297 = 37.9% done in 12.0s, 19.7s to go on time step 15165 (time=252.75), 0.00078922 s/step Meep progress: 336.6166666666667/666.6666717529297 = 50.5% done in 16.0s, 15.7s to go on time step 20213 (time=336.883), 0.000792426 s/step Meep progress: 421.5/666.6666717529297 = 63.2% done in 20.0s, 11.6s to go on time step 25308 (time=421.8), 0.000785113 s/step Meep progress: 506.68333333333334/666.6666717529297 = 76.0% done in 24.0s, 7.6s to go on time step 30420 (time=507), 0.000782534 s/step Meep progress: 591.7833333333333/666.6666717529297 = 88.8% done in 28.0s, 3.5s to go on time step 35528 (time=592.133), 0.000783211 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00184393 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.015429 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.25/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5906 (time=98.4333), 0.000677395 s/step Meep progress: 196.18333333333334/366.6666717529297 = 53.5% done in 8.0s, 7.0s to go on time step 11784 (time=196.4), 0.000680643 s/step Meep progress: 289.8/366.6666717529297 = 79.0% done in 12.0s, 3.2s to go on time step 17401 (time=290.017), 0.000712187 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.21796392210149537, 2.7101979244778688e-08, -4021180.8911241614, 1.2931472666535015, -0.6549272150232459+1.1150337197929565i, 1.1090356875112212e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.2, 0.21796392210149537 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.0045712 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.6,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0223899 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.717283) = 0.217732 after 10 iters MPB solved for frequency_1(0,0,0.718056) = 0.217964 after 6 iters MPB solved for frequency_1(0,0,0.718056) = 0.217964 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.717283) = 0.217732 after 10 iters MPB solved for frequency_1(0,0,0.718056) = 0.217964 after 6 iters MPB solved for frequency_1(0,0,0.718056) = 0.217964 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 80.98333333333333/666.6666717529297 = 12.1% done in 4.0s, 28.9s to go on time step 4873 (time=81.2167), 0.000821001 s/step Meep progress: 167.45/666.6666717529297 = 25.1% done in 8.0s, 23.9s to go on time step 10064 (time=167.733), 0.00077061 s/step Meep progress: 249.98333333333332/666.6666717529297 = 37.5% done in 12.0s, 20.0s to go on time step 15016 (time=250.267), 0.000807818 s/step Meep progress: 332.5833333333333/666.6666717529297 = 49.9% done in 16.0s, 16.1s to go on time step 19974 (time=332.9), 0.000806779 s/step Meep progress: 416.75/666.6666717529297 = 62.5% done in 20.0s, 12.0s to go on time step 25023 (time=417.05), 0.000792321 s/step Meep progress: 500.4166666666667/666.6666717529297 = 75.1% done in 24.0s, 8.0s to go on time step 30045 (time=500.75), 0.000796587 s/step Meep progress: 584.0333333333333/666.6666717529297 = 87.6% done in 28.0s, 4.0s to go on time step 35066 (time=584.433), 0.000796753 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00176692 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.022615 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.23333333333333/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5908 (time=98.4667), 0.00067706 s/step Meep progress: 195.71666666666667/366.6666717529297 = 53.4% done in 8.0s, 7.0s to go on time step 11757 (time=195.95), 0.000683889 s/step Meep progress: 289.85/366.6666717529297 = 79.0% done in 12.0s, 3.2s to go on time step 17406 (time=290.1), 0.000708109 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.23050129868403818, 1.1111522223430954e-09, -103721746.69190612, 0.8510771099307869, 0.2097756989886373-0.824819012366937i, 2.532377183551288e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.30000000000000004, 0.23050129868403818 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00193691 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0224741 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.759804) = 0.230167 after 12 iters MPB solved for frequency_1(0,0,0.760921) = 0.230501 after 7 iters MPB solved for frequency_1(0,0,0.760921) = 0.230501 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.759804) = 0.230167 after 12 iters MPB solved for frequency_1(0,0,0.760921) = 0.230501 after 7 iters MPB solved for frequency_1(0,0,0.760921) = 0.230501 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 84.26666666666667/666.6666717529297 = 12.6% done in 4.0s, 27.6s to go on time step 5068 (time=84.4667), 0.000789299 s/step Meep progress: 168.88333333333333/666.6666717529297 = 25.3% done in 8.0s, 23.6s to go on time step 10146 (time=169.1), 0.000787785 s/step Meep progress: 253.36666666666667/666.6666717529297 = 38.0% done in 12.0s, 19.6s to go on time step 15217 (time=253.617), 0.000788949 s/step Meep progress: 337.76666666666665/666.6666717529297 = 50.7% done in 16.0s, 15.6s to go on time step 20281 (time=338.017), 0.000789954 s/step Meep progress: 422.93333333333334/666.6666717529297 = 63.4% done in 20.0s, 11.5s to go on time step 25393 (time=423.217), 0.000782588 s/step Meep progress: 507.96666666666664/666.6666717529297 = 76.2% done in 24.0s, 7.5s to go on time step 30498 (time=508.3), 0.000783646 s/step Meep progress: 592.5/666.6666717529297 = 88.9% done in 28.0s, 3.5s to go on time step 35571 (time=592.85), 0.000788548 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00206399 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.020714 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.15/366.6666717529297 = 26.5% done in 4.0s, 11.1s to go on time step 5847 (time=97.45), 0.000684132 s/step Meep progress: 194.53333333333333/366.6666717529297 = 53.1% done in 8.0s, 7.1s to go on time step 11689 (time=194.817), 0.000684739 s/step Meep progress: 288.7/366.6666717529297 = 78.7% done in 12.0s, 3.2s to go on time step 17342 (time=289.033), 0.000707681 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2202853119212703, 1.661718958542485e-08, -6628236.104211189, 1.3726411235812384, 0.8679324852926675+1.0634081319606588i, 4.943132075236113e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.30000000000000004, 0.2202853119212703 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00254488 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.65,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0223539 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.726009) = 0.220034 after 11 iters MPB solved for frequency_1(0,0,0.726846) = 0.220285 after 6 iters MPB solved for frequency_1(0,0,0.726846) = 0.220285 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.726009) = 0.220034 after 11 iters MPB solved for frequency_1(0,0,0.726846) = 0.220285 after 6 iters MPB solved for frequency_1(0,0,0.726846) = 0.220285 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 83.03333333333333/666.6666717529297 = 12.5% done in 4.0s, 28.1s to go on time step 4991 (time=83.1833), 0.000801588 s/step Meep progress: 166.5/666.6666717529297 = 25.0% done in 8.0s, 24.0s to go on time step 10001 (time=166.683), 0.000798491 s/step Meep progress: 250.11666666666667/666.6666717529297 = 37.5% done in 12.0s, 20.0s to go on time step 15019 (time=250.317), 0.0007972 s/step Meep progress: 334.71666666666664/666.6666717529297 = 50.2% done in 16.0s, 15.9s to go on time step 20097 (time=334.95), 0.000787764 s/step Meep progress: 418.81666666666666/666.6666717529297 = 62.8% done in 20.0s, 11.8s to go on time step 25142 (time=419.033), 0.000792875 s/step Meep progress: 503.55/666.6666717529297 = 75.5% done in 24.0s, 7.8s to go on time step 30228 (time=503.8), 0.000786594 s/step Meep progress: 587.45/666.6666717529297 = 88.1% done in 28.0s, 3.8s to go on time step 35264 (time=587.733), 0.000794317 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00176716 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0131691 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.36666666666666/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5915 (time=98.5833), 0.000676356 s/step Meep progress: 196.03333333333333/366.6666717529297 = 53.5% done in 8.0s, 7.0s to go on time step 11777 (time=196.283), 0.000682479 s/step Meep progress: 289.5833333333333/366.6666717529297 = 79.0% done in 12.0s, 3.2s to go on time step 17392 (time=289.867), 0.000712464 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22938047554467897, 2.8259525192417854e-09, -40584630.13494343, 0.9554083501216192, 0.7088623048929175-0.6405617442401746i, 4.7858601707454104e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.4, 0.22938047554467897 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00361514 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0198278 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.754994) = 0.229057 after 10 iters MPB solved for frequency_1(0,0,0.75607) = 0.22938 after 6 iters MPB solved for frequency_1(0,0,0.75607) = 0.22938 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.754994) = 0.229057 after 10 iters MPB solved for frequency_1(0,0,0.75607) = 0.22938 after 6 iters MPB solved for frequency_1(0,0,0.75607) = 0.22938 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 82.06666666666666/666.6666717529297 = 12.3% done in 4.0s, 28.5s to go on time step 4936 (time=82.2667), 0.000810417 s/step Meep progress: 166.41666666666666/666.6666717529297 = 25.0% done in 8.0s, 24.0s to go on time step 9998 (time=166.633), 0.000790205 s/step Meep progress: 249.71666666666667/666.6666717529297 = 37.5% done in 12.0s, 20.0s to go on time step 14996 (time=249.933), 0.00080039 s/step Meep progress: 333.55/666.6666717529297 = 50.0% done in 16.0s, 16.0s to go on time step 20028 (time=333.8), 0.000795032 s/step Meep progress: 416.65/666.6666717529297 = 62.5% done in 20.0s, 12.0s to go on time step 25015 (time=416.917), 0.000802087 s/step Meep progress: 500.7/666.6666717529297 = 75.1% done in 24.0s, 8.0s to go on time step 30060 (time=501), 0.00079297 s/step Meep progress: 584.4666666666667/666.6666717529297 = 87.7% done in 28.0s, 3.9s to go on time step 35087 (time=584.783), 0.000795733 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00191903 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.029588 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.71666666666667/366.6666717529297 = 26.6% done in 4.0s, 11.0s to go on time step 5876 (time=97.9333), 0.000680849 s/step Meep progress: 194.2/366.6666717529297 = 53.0% done in 8.0s, 7.1s to go on time step 11665 (time=194.417), 0.000690981 s/step Meep progress: 286.93333333333334/366.6666717529297 = 78.3% done in 12.0s, 3.3s to go on time step 17231 (time=287.183), 0.000718741 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22197905508783583, 2.689453714201604e-09, -41268428.21567816, 1.380617017276195, 1.3806167115397914-0.0009188088320141777i, 5.815262450716548e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.4, 0.22197905508783583 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00408697 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.7,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0230129 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.730545) = 0.221717 after 10 iters MPB solved for frequency_1(0,0,0.731419) = 0.221979 after 6 iters MPB solved for frequency_1(0,0,0.731419) = 0.221979 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.730545) = 0.221717 after 10 iters MPB solved for frequency_1(0,0,0.731419) = 0.221979 after 6 iters MPB solved for frequency_1(0,0,0.731419) = 0.221979 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 83.2/666.6666717529297 = 12.5% done in 4.0s, 28.1s to go on time step 5007 (time=83.45), 0.000798937 s/step Meep progress: 167.13333333333333/666.6666717529297 = 25.1% done in 8.0s, 23.9s to go on time step 10044 (time=167.4), 0.000794127 s/step Meep progress: 251.06666666666666/666.6666717529297 = 37.7% done in 12.0s, 19.9s to go on time step 15081 (time=251.35), 0.000794205 s/step Meep progress: 334.51666666666665/666.6666717529297 = 50.2% done in 16.0s, 15.9s to go on time step 20090 (time=334.833), 0.000798598 s/step Meep progress: 423.31666666666666/666.6666717529297 = 63.5% done in 20.0s, 11.5s to go on time step 25419 (time=423.65), 0.000750669 s/step Meep progress: 507.84999999999997/666.6666717529297 = 76.2% done in 24.0s, 7.5s to go on time step 30493 (time=508.217), 0.000788413 s/step Meep progress: 592.3333333333334/666.6666717529297 = 88.8% done in 28.0s, 3.5s to go on time step 35564 (time=592.733), 0.000788837 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.0018878 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.016355 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 93.36666666666666/366.6666717529297 = 25.5% done in 4.0s, 11.7s to go on time step 5619 (time=93.65), 0.000711909 s/step Meep progress: 186.51666666666665/366.6666717529297 = 50.9% done in 8.0s, 7.7s to go on time step 11208 (time=186.8), 0.000715819 s/step Meep progress: 275.8333333333333/366.6666717529297 = 75.2% done in 12.0s, 4.0s to go on time step 16567 (time=276.117), 0.000746435 s/step Meep progress: 364.9166666666667/366.6666717529297 = 99.5% done in 16.0s, 0.1s to go on time step 21916 (time=365.267), 0.000747914 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22839396754116606, 4.693442764536769e-09, -24331176.387926824, 1.0415890909263652, 1.0168824850407956-0.22551684184128717i, 4.249035856082629e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.5, 0.22839396754116606 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00539398 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.023149 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.752833) = 0.228077 after 12 iters MPB solved for frequency_1(0,0,0.753888) = 0.228394 after 7 iters MPB solved for frequency_1(0,0,0.753888) = 0.228394 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.752833) = 0.228077 after 12 iters MPB solved for frequency_1(0,0,0.753888) = 0.228394 after 7 iters MPB solved for frequency_1(0,0,0.753888) = 0.228394 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 81.8/666.6666717529297 = 12.3% done in 4.0s, 28.6s to go on time step 4924 (time=82.0667), 0.000812495 s/step Meep progress: 164.1/666.6666717529297 = 24.6% done in 8.0s, 24.5s to go on time step 9862 (time=164.367), 0.000810167 s/step Meep progress: 247.63333333333333/666.6666717529297 = 37.1% done in 12.0s, 20.3s to go on time step 14875 (time=247.917), 0.00079793 s/step Meep progress: 330.1666666666667/666.6666717529297 = 49.5% done in 16.0s, 16.3s to go on time step 19829 (time=330.483), 0.000807541 s/step Meep progress: 413.0333333333333/666.6666717529297 = 62.0% done in 20.0s, 12.3s to go on time step 24804 (time=413.4), 0.000804159 s/step Meep progress: 496.95/666.6666717529297 = 74.5% done in 24.0s, 8.2s to go on time step 29839 (time=497.317), 0.000794594 s/step Meep progress: 580.2166666666667/666.6666717529297 = 87.0% done in 28.0s, 4.2s to go on time step 34837 (time=580.617), 0.000800409 s/step Meep progress: 664.0166666666667/666.6666717529297 = 99.6% done in 32.0s, 0.1s to go on time step 39867 (time=664.45), 0.000795323 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00177789 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0188749 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 96.9/366.6666717529297 = 26.4% done in 4.0s, 11.1s to go on time step 5834 (time=97.2333), 0.000685744 s/step Meep progress: 194.31666666666666/366.6666717529297 = 53.0% done in 8.0s, 7.1s to go on time step 11679 (time=194.65), 0.000684423 s/step Meep progress: 288.7/366.6666717529297 = 78.7% done in 12.0s, 3.2s to go on time step 17345 (time=289.083), 0.000705968 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2230300941405038, -7.841965023994586e-09, 14220293.858623678, 1.3613884433238386, 1.1598737564442396-0.7127912476508345i, 7.609870353913999e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.5, 0.2230300941405038 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00159287 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.75,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.02321 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.735089) = 0.222758 after 11 iters MPB solved for frequency_1(0,0,0.735997) = 0.22303 after 6 iters MPB solved for frequency_1(0,0,0.735997) = 0.22303 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.735089) = 0.222758 after 11 iters MPB solved for frequency_1(0,0,0.735997) = 0.22303 after 6 iters MPB solved for frequency_1(0,0,0.735997) = 0.22303 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 82.91666666666667/666.6666717529297 = 12.4% done in 4.0s, 28.2s to go on time step 4986 (time=83.1), 0.000802322 s/step Meep progress: 165.63333333333333/666.6666717529297 = 24.8% done in 8.0s, 24.2s to go on time step 9950 (time=165.833), 0.000805971 s/step Meep progress: 249.08333333333334/666.6666717529297 = 37.4% done in 12.0s, 20.1s to go on time step 14957 (time=249.283), 0.000798944 s/step Meep progress: 332.0333333333333/666.6666717529297 = 49.8% done in 16.0s, 16.1s to go on time step 19937 (time=332.283), 0.00080335 s/step Meep progress: 416.8333333333333/666.6666717529297 = 62.5% done in 20.0s, 12.0s to go on time step 25028 (time=417.133), 0.000785816 s/step Meep progress: 501.56666666666666/666.6666717529297 = 75.2% done in 24.0s, 7.9s to go on time step 30113 (time=501.883), 0.000786698 s/step Meep progress: 585.2666666666667/666.6666717529297 = 87.8% done in 28.0s, 3.9s to go on time step 35137 (time=585.617), 0.000796204 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.0018599 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0129621 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.08333333333333/366.6666717529297 = 26.5% done in 4.0s, 11.1s to go on time step 5839 (time=97.3167), 0.000685119 s/step Meep progress: 193.31666666666666/366.6666717529297 = 52.7% done in 8.0s, 7.2s to go on time step 11612 (time=193.533), 0.000692887 s/step Meep progress: 287.93333333333334/366.6666717529297 = 78.5% done in 12.0s, 3.3s to go on time step 17291 (time=288.183), 0.000704366 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22779219587071284, 6.5733308116063705e-09, -17326999.233669, 1.0936986894641623, 1.0885703324807652+0.10578967141617628i, 1.6452384436270636e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.6, 0.22779219587071284 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00145602 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0227098 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.749747) = 0.227483 after 10 iters MPB solved for frequency_1(0,0,0.750779) = 0.227792 after 6 iters MPB solved for frequency_1(0,0,0.750779) = 0.227792 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.749747) = 0.227483 after 10 iters MPB solved for frequency_1(0,0,0.750779) = 0.227792 after 6 iters MPB solved for frequency_1(0,0,0.750779) = 0.227792 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 81.93333333333334/666.6666717529297 = 12.3% done in 4.0s, 28.6s to go on time step 4932 (time=82.2), 0.000811153 s/step Meep progress: 164.1/666.6666717529297 = 24.6% done in 8.0s, 24.5s to go on time step 9863 (time=164.383), 0.000811203 s/step Meep progress: 246.46666666666667/666.6666717529297 = 37.0% done in 12.0s, 20.5s to go on time step 14805 (time=246.75), 0.000809507 s/step Meep progress: 328.0/666.6666717529297 = 49.2% done in 16.0s, 16.5s to go on time step 19699 (time=328.317), 0.000817414 s/step Meep progress: 410.98333333333335/666.6666717529297 = 61.6% done in 20.0s, 12.4s to go on time step 24678 (time=411.3), 0.000803526 s/step Meep progress: 493.6333333333333/666.6666717529297 = 74.0% done in 24.0s, 8.4s to go on time step 29641 (time=494.017), 0.000806037 s/step Meep progress: 575.4833333333333/666.6666717529297 = 86.3% done in 28.0s, 4.4s to go on time step 34552 (time=575.867), 0.000814608 s/step Meep progress: 657.2666666666667/666.6666717529297 = 98.6% done in 32.0s, 0.5s to go on time step 39463 (time=657.717), 0.000814686 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00235796 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0135491 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.13333333333333/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5904 (time=98.4), 0.000677588 s/step Meep progress: 195.1/366.6666717529297 = 53.2% done in 8.0s, 7.0s to go on time step 11722 (time=195.367), 0.000687535 s/step Meep progress: 289.7/366.6666717529297 = 79.0% done in 12.0s, 3.2s to go on time step 17400 (time=290), 0.00070453 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22389046766301668, -1.7192955887682313e-08, 6511110.396770701, 1.3350122958073318, 0.7195356752054972-1.124511557105276i, 1.7074960255719633e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.6, 0.22389046766301668 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00139403 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.8,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0244219 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.736859) = 0.223613 after 10 iters MPB solved for frequency_1(0,0,0.737783) = 0.22389 after 6 iters MPB solved for frequency_1(0,0,0.737783) = 0.22389 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.736859) = 0.223613 after 10 iters MPB solved for frequency_1(0,0,0.737783) = 0.22389 after 6 iters MPB solved for frequency_1(0,0,0.737783) = 0.22389 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 80.78333333333333/666.6666717529297 = 12.1% done in 4.0s, 29.0s to go on time step 4859 (time=80.9833), 0.00082328 s/step Meep progress: 163.13333333333333/666.6666717529297 = 24.5% done in 8.0s, 24.7s to go on time step 9802 (time=163.367), 0.000809344 s/step Meep progress: 246.68333333333334/666.6666717529297 = 37.0% done in 12.0s, 20.4s to go on time step 14815 (time=246.917), 0.000798049 s/step Meep progress: 328.95/666.6666717529297 = 49.3% done in 16.0s, 16.4s to go on time step 19751 (time=329.183), 0.000810423 s/step Meep progress: 411.5/666.6666717529297 = 61.7% done in 20.0s, 12.4s to go on time step 24705 (time=411.75), 0.000807463 s/step Meep progress: 494.3333333333333/666.6666717529297 = 74.1% done in 24.0s, 8.4s to go on time step 29677 (time=494.617), 0.000804549 s/step Meep progress: 576.9/666.6666717529297 = 86.5% done in 28.0s, 4.4s to go on time step 34633 (time=577.217), 0.000807203 s/step Meep progress: 659.4/666.6666717529297 = 98.9% done in 32.0s, 0.4s to go on time step 39582 (time=659.7), 0.000808279 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.0023129 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.013726 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.66666666666667/366.6666717529297 = 26.9% done in 4.0s, 10.9s to go on time step 5932 (time=98.8667), 0.000674405 s/step Meep progress: 196.48333333333332/366.6666717529297 = 53.6% done in 8.0s, 6.9s to go on time step 11802 (time=196.7), 0.000681457 s/step Meep progress: 289.5833333333333/366.6666717529297 = 79.0% done in 12.0s, 3.2s to go on time step 17390 (time=289.833), 0.000715836 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2272133016731052, 8.742503028543528e-09, -12994751.098814214, 1.1387362638662792, 1.0488380657857905+0.4434625016874079i, 6.376331244480289e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.7000000000000001, 0.2272133016731052 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00217509 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0203781 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.748927) = 0.226907 after 12 iters MPB solved for frequency_1(0,0,0.749949) = 0.227213 after 7 iters MPB solved for frequency_1(0,0,0.749949) = 0.227213 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.748927) = 0.226907 after 12 iters MPB solved for frequency_1(0,0,0.749949) = 0.227213 after 7 iters MPB solved for frequency_1(0,0,0.749949) = 0.227213 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 80.98333333333333/666.6666717529297 = 12.1% done in 4.0s, 28.9s to go on time step 4872 (time=81.2), 0.000821152 s/step Meep progress: 163.65/666.6666717529297 = 24.5% done in 8.0s, 24.6s to go on time step 9835 (time=163.917), 0.000806157 s/step Meep progress: 245.54999999999998/666.6666717529297 = 36.8% done in 12.0s, 20.6s to go on time step 14749 (time=245.817), 0.000814041 s/step Meep progress: 328.2/666.6666717529297 = 49.2% done in 16.0s, 16.5s to go on time step 19710 (time=328.5), 0.000806343 s/step Meep progress: 409.6666666666667/666.6666717529297 = 61.4% done in 20.0s, 12.5s to go on time step 24599 (time=409.983), 0.000818225 s/step Meep progress: 492.71666666666664/666.6666717529297 = 73.9% done in 24.0s, 8.5s to go on time step 29585 (time=493.083), 0.000802381 s/step Meep progress: 575.6666666666666/666.6666717529297 = 86.3% done in 28.0s, 4.4s to go on time step 34560 (time=576), 0.000804049 s/step Meep progress: 657.1666666666666/666.6666717529297 = 98.6% done in 32.0s, 0.5s to go on time step 39453 (time=657.55), 0.000817607 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00278711 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0183229 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.63333333333333/366.6666717529297 = 26.6% done in 4.0s, 11.0s to go on time step 5868 (time=97.8), 0.000681683 s/step Meep progress: 194.08333333333334/366.6666717529297 = 52.9% done in 8.0s, 7.1s to go on time step 11656 (time=194.267), 0.000691144 s/step Meep progress: 287.7/366.6666717529297 = 78.5% done in 12.0s, 3.3s to go on time step 17275 (time=287.917), 0.000711899 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22437226062905724, -2.3099396489881195e-08, 4856669.3230999485, 1.313923864774931, 0.4094809417964661-1.2484875973475147i, 1.7003140322728657e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.7000000000000001, 0.22437226062905724 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00296402 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.85,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0208819 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.739529) = 0.224089 after 12 iters MPB solved for frequency_1(0,0,0.740473) = 0.224372 after 6 iters MPB solved for frequency_1(0,0,0.740473) = 0.224372 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.739529) = 0.224089 after 12 iters MPB solved for frequency_1(0,0,0.740473) = 0.224372 after 6 iters MPB solved for frequency_1(0,0,0.740473) = 0.224372 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 82.01666666666667/666.6666717529297 = 12.3% done in 4.0s, 28.5s to go on time step 4933 (time=82.2167), 0.000811033 s/step Meep progress: 163.2/666.6666717529297 = 24.5% done in 8.0s, 24.7s to go on time step 9805 (time=163.417), 0.000821053 s/step Meep progress: 246.13333333333333/666.6666717529297 = 36.9% done in 12.0s, 20.5s to go on time step 14783 (time=246.383), 0.000803661 s/step Meep progress: 328.68333333333334/666.6666717529297 = 49.3% done in 16.0s, 16.5s to go on time step 19737 (time=328.95), 0.000807463 s/step Meep progress: 410.4166666666667/666.6666717529297 = 61.6% done in 20.0s, 12.5s to go on time step 24642 (time=410.7), 0.000815659 s/step Meep progress: 492.2833333333333/666.6666717529297 = 73.8% done in 24.0s, 8.5s to go on time step 29554 (time=492.567), 0.000814442 s/step Meep progress: 575.4166666666666/666.6666717529297 = 86.3% done in 28.0s, 4.4s to go on time step 34545 (time=575.75), 0.000801476 s/step Meep progress: 658.3/666.6666717529297 = 98.7% done in 32.0s, 0.4s to go on time step 39517 (time=658.617), 0.000804507 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00178504 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.012604 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.18333333333334/366.6666717529297 = 26.5% done in 4.0s, 11.1s to go on time step 5847 (time=97.45), 0.000684151 s/step Meep progress: 192.4/366.6666717529297 = 52.5% done in 8.0s, 7.2s to go on time step 11561 (time=192.683), 0.000700084 s/step Meep progress: 284.7/366.6666717529297 = 77.6% done in 12.0s, 3.5s to go on time step 17100 (time=285), 0.000722162 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22692081083425694, 1.1307039395132144e-08, -10034492.801535204, 1.1623124097996433, 0.9889626651292537+0.6106742052475259i, 7.110203970811583e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.8, 0.22692081083425694 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00310993 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0245988 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.746869) = 0.226619 after 10 iters MPB solved for frequency_1(0,0,0.747876) = 0.226921 after 6 iters MPB solved for frequency_1(0,0,0.747876) = 0.226921 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.746869) = 0.226619 after 10 iters MPB solved for frequency_1(0,0,0.747876) = 0.226921 after 6 iters MPB solved for frequency_1(0,0,0.747876) = 0.226921 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 82.35/666.6666717529297 = 12.4% done in 4.0s, 28.4s to go on time step 4956 (time=82.6), 0.000807173 s/step Meep progress: 165.3/666.6666717529297 = 24.8% done in 8.0s, 24.3s to go on time step 9936 (time=165.6), 0.00080335 s/step Meep progress: 248.29999999999998/666.6666717529297 = 37.2% done in 12.0s, 20.2s to go on time step 14916 (time=248.6), 0.000803232 s/step Meep progress: 331.3833333333333/666.6666717529297 = 49.7% done in 16.0s, 16.2s to go on time step 19901 (time=331.683), 0.000802426 s/step Meep progress: 414.55/666.6666717529297 = 62.2% done in 20.0s, 12.2s to go on time step 24893 (time=414.883), 0.000801303 s/step Meep progress: 497.6666666666667/666.6666717529297 = 74.6% done in 24.0s, 8.2s to go on time step 29882 (time=498.033), 0.000801855 s/step Meep progress: 580.8333333333334/666.6666717529297 = 87.1% done in 28.0s, 4.1s to go on time step 34873 (time=581.217), 0.000801512 s/step Meep progress: 663.0/666.6666717529297 = 99.4% done in 32.0s, 0.2s to go on time step 39805 (time=663.417), 0.000811121 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00191712 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.013334 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 95.85/366.6666717529297 = 26.1% done in 4.0s, 11.3s to go on time step 5762 (time=96.0333), 0.000694243 s/step Meep progress: 192.11666666666667/366.6666717529297 = 52.4% done in 8.0s, 7.3s to go on time step 11538 (time=192.3), 0.000692638 s/step Meep progress: 285.15/366.6666717529297 = 77.8% done in 12.0s, 3.4s to go on time step 17122 (time=285.367), 0.00071637 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2248450102131107, -2.925827242064695e-08, 3842417.7439547367, 1.2923701545067185, 0.08958085376950176-1.2892617604263483i, 1.389119717333207e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.8, 0.2248450102131107 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00451803 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.9,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0211821 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.740012) = 0.22456 after 10 iters MPB solved for frequency_1(0,0,0.740962) = 0.224845 after 6 iters MPB solved for frequency_1(0,0,0.740962) = 0.224845 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.740012) = 0.22456 after 10 iters MPB solved for frequency_1(0,0,0.740962) = 0.224845 after 6 iters MPB solved for frequency_1(0,0,0.740962) = 0.224845 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 81.1/666.6666717529297 = 12.2% done in 4.0s, 28.9s to go on time step 4876 (time=81.2667), 0.000820368 s/step Meep progress: 162.61666666666667/666.6666717529297 = 24.4% done in 8.0s, 24.8s to go on time step 9769 (time=162.817), 0.000817623 s/step Meep progress: 243.96666666666667/666.6666717529297 = 36.6% done in 12.0s, 20.8s to go on time step 14650 (time=244.167), 0.000819636 s/step Meep progress: 326.0833333333333/666.6666717529297 = 48.9% done in 16.0s, 16.7s to go on time step 19578 (time=326.3), 0.00081184 s/step Meep progress: 408.95/666.6666717529297 = 61.3% done in 20.0s, 12.6s to go on time step 24552 (time=409.2), 0.000804271 s/step Meep progress: 491.7/666.6666717529297 = 73.8% done in 24.0s, 8.5s to go on time step 29519 (time=491.983), 0.00080546 s/step Meep progress: 574.1666666666666/666.6666717529297 = 86.1% done in 28.0s, 4.5s to go on time step 34468 (time=574.467), 0.000808346 s/step Meep progress: 658.6333333333333/666.6666717529297 = 98.8% done in 32.0s, 0.4s to go on time step 39536 (time=658.933), 0.000789417 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00183201 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.012459 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.45/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5917 (time=98.6167), 0.000676164 s/step Meep progress: 195.05/366.6666717529297 = 53.2% done in 8.0s, 7.0s to go on time step 11715 (time=195.25), 0.000689941 s/step Meep progress: 288.35/366.6666717529297 = 78.6% done in 12.0s, 3.3s to go on time step 17313 (time=288.55), 0.000714587 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22657284275616438, 1.4388403173786857e-08, -7873453.364475506, 1.1864826851861325, 0.8798551388030453+0.7959874979975307i, 4.0990972663369745e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.9, 0.22657284275616438 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00310707 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0196011 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.746808) = 0.226272 after 12 iters MPB solved for frequency_1(0,0,0.747813) = 0.226573 after 7 iters MPB solved for frequency_1(0,0,0.747813) = 0.226573 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.746808) = 0.226272 after 12 iters MPB solved for frequency_1(0,0,0.747813) = 0.226573 after 7 iters MPB solved for frequency_1(0,0,0.747813) = 0.226573 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 81.61666666666666/666.6666717529297 = 12.2% done in 4.0s, 28.7s to go on time step 4905 (time=81.75), 0.00081566 s/step Meep progress: 164.35/666.6666717529297 = 24.7% done in 8.0s, 24.5s to go on time step 9871 (time=164.517), 0.000805577 s/step Meep progress: 246.91666666666666/666.6666717529297 = 37.0% done in 12.0s, 20.4s to go on time step 14826 (time=247.1), 0.000807378 s/step Meep progress: 329.56666666666666/666.6666717529297 = 49.4% done in 16.0s, 16.4s to go on time step 19787 (time=329.783), 0.000806447 s/step Meep progress: 411.8666666666667/666.6666717529297 = 61.8% done in 20.0s, 12.4s to go on time step 24725 (time=412.083), 0.000810105 s/step Meep progress: 494.0333333333333/666.6666717529297 = 74.1% done in 24.0s, 8.4s to go on time step 29663 (time=494.383), 0.000810117 s/step Meep progress: 576.4333333333333/666.6666717529297 = 86.5% done in 28.0s, 4.4s to go on time step 34601 (time=576.683), 0.000810185 s/step Meep progress: 658.8166666666666/666.6666717529297 = 98.8% done in 32.0s, 0.4s to go on time step 39546 (time=659.1), 0.000809041 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00218797 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0134099 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.06666666666666/366.6666717529297 = 26.5% done in 4.0s, 11.1s to go on time step 5840 (time=97.3333), 0.000685049 s/step Meep progress: 194.68333333333334/366.6666717529297 = 53.1% done in 8.0s, 7.1s to go on time step 11698 (time=194.967), 0.000682896 s/step Meep progress: 288.45/366.6666717529297 = 78.7% done in 12.0s, 3.3s to go on time step 17323 (time=288.717), 0.000711171 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22505482918759098, -3.331421542112138e-08, 3377759.7092216844, 1.2802884326550177, -0.05183926206700584-1.2792385085270808i, 1.4238944309468102e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 0.9, 0.22505482918759098 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00150323 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (0.95,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0196998 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.741787) = 0.224766 after 12 iters MPB solved for frequency_1(0,0,0.742749) = 0.225055 after 6 iters MPB solved for frequency_1(0,0,0.742749) = 0.225055 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.151963 after 15 iters MPB solved for frequency_1(0,0,0.741787) = 0.224766 after 12 iters MPB solved for frequency_1(0,0,0.742749) = 0.225055 after 6 iters MPB solved for frequency_1(0,0,0.742749) = 0.225055 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 81.55/666.6666717529297 = 12.2% done in 4.0s, 28.7s to go on time step 4901 (time=81.6833), 0.000816171 s/step Meep progress: 161.51666666666665/666.6666717529297 = 24.2% done in 8.0s, 25.0s to go on time step 9700 (time=161.667), 0.000833518 s/step Meep progress: 243.5/666.6666717529297 = 36.5% done in 12.0s, 20.9s to go on time step 14621 (time=243.683), 0.000813012 s/step Meep progress: 326.46666666666664/666.6666717529297 = 49.0% done in 16.0s, 16.7s to go on time step 19599 (time=326.65), 0.000803559 s/step Meep progress: 408.7/666.6666717529297 = 61.3% done in 20.0s, 12.6s to go on time step 24535 (time=408.917), 0.000810512 s/step Meep progress: 490.46666666666664/666.6666717529297 = 73.6% done in 24.0s, 8.6s to go on time step 29442 (time=490.7), 0.000815343 s/step Meep progress: 571.4333333333333/666.6666717529297 = 85.7% done in 28.0s, 4.7s to go on time step 34304 (time=571.733), 0.000822786 s/step Meep progress: 652.35/666.6666717529297 = 97.9% done in 32.0s, 0.7s to go on time step 39159 (time=652.65), 0.000824059 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00182199 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.013756 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 97.63333333333333/366.6666717529297 = 26.6% done in 4.0s, 11.0s to go on time step 5871 (time=97.85), 0.000681371 s/step Meep progress: 195.38333333333333/366.6666717529297 = 53.3% done in 8.0s, 7.0s to go on time step 11737 (time=195.617), 0.000681959 s/step Meep progress: 288.0/366.6666717529297 = 78.5% done in 12.0s, 3.3s to go on time step 17297 (time=288.283), 0.000719542 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.2264506053061966, 1.848141445855612e-08, -6126441.399114868, 1.1963136036156947, 0.833990004289438+0.8576869539297383i, 9.41930743041389e-14+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 1.0, 0.2264506053061966 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00198913 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0247951 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.745316) = 0.226152 after 10 iters MPB solved for frequency_1(0,0,0.74631) = 0.226451 after 6 iters MPB solved for frequency_1(0,0,0.74631) = 0.226451 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.745316) = 0.226152 after 10 iters MPB solved for frequency_1(0,0,0.74631) = 0.226451 after 6 iters MPB solved for frequency_1(0,0,0.74631) = 0.226451 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 80.21666666666667/666.6666717529297 = 12.0% done in 4.0s, 29.2s to go on time step 4831 (time=80.5167), 0.000828124 s/step Meep progress: 160.66666666666666/666.6666717529297 = 24.1% done in 8.0s, 25.2s to go on time step 9662 (time=161.033), 0.00082815 s/step Meep progress: 242.7/666.6666717529297 = 36.4% done in 12.0s, 21.0s to go on time step 14584 (time=243.067), 0.000812847 s/step Meep progress: 323.06666666666666/666.6666717529297 = 48.5% done in 16.0s, 17.0s to go on time step 19408 (time=323.467), 0.000829324 s/step Meep progress: 403.96666666666664/666.6666717529297 = 60.6% done in 20.0s, 13.0s to go on time step 24267 (time=404.45), 0.000823243 s/step Meep progress: 485.68333333333334/666.6666717529297 = 72.9% done in 24.0s, 8.9s to go on time step 29170 (time=486.167), 0.000815931 s/step Meep progress: 567.6833333333333/666.6666717529297 = 85.2% done in 28.0s, 4.9s to go on time step 34092 (time=568.2), 0.00081282 s/step Meep progress: 648.8666666666667/666.6666717529297 = 97.3% done in 32.0s, 0.9s to go on time step 38962 (time=649.367), 0.000821455 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps) ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00247097 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0148768 s ----------- Meep: using complex fields.
FloatProgress(value=0.0, description='0% done ', max=366.6666717529297)
Meep progress: 98.18333333333334/366.6666717529297 = 26.8% done in 4.0s, 10.9s to go on time step 5906 (time=98.4333), 0.000677366 s/step Meep progress: 195.21666666666667/366.6666717529297 = 53.2% done in 8.0s, 7.0s to go on time step 11728 (time=195.467), 0.000687257 s/step Meep progress: 288.5333333333333/366.6666717529297 = 78.7% done in 12.0s, 3.2s to go on time step 17331 (time=288.85), 0.000714072 s/step harminv0:, frequency, imag. freq., Q, |amp|, amplitude, error harminv0:, 0.22533719120317752, -3.886614292556672e-08, 2898888.0069052, 1.265821467168656, -0.2370236086793528-1.2434322642080775i, 1.8277875767837685e-13+0.0i run 0 finished at t = 366.68333333333334 (22001 timesteps) freq:, 1.0, 0.22533719120317752 ----------- Initializing structure... Halving computational cell along direction x Halving computational cell along direction y time for choose_chunkdivision = 0.00464702 s Working in 2D dimensions. Computational cell is 7 x 5 x 0 with resolution 30 block, center = (-1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) block, center = (1,0,0) size (1,1,1e+20) axes (1,0,0), (0,1,0), (0,0,1) dielectric constant epsilon diagonal = (11.9025,11.9025,11.9025) time for set_epsilon = 0.0233421 s ----------- Meep: using complex fields. MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.741638) = 0.225048 after 10 iters MPB solved for frequency_1(0,0,0.742601) = 0.225337 after 6 iters MPB solved for frequency_1(0,0,0.742601) = 0.225337 after 1 iters MPB solved for frequency_1(0,0,0.5) = 0.152184 after 14 iters MPB solved for frequency_1(0,0,0.741638) = 0.225048 after 10 iters MPB solved for frequency_1(0,0,0.742601) = 0.225337 after 6 iters MPB solved for frequency_1(0,0,0.742601) = 0.225337 after 1 iters
FloatProgress(value=0.0, description='0% done ', max=666.6666717529297)
Meep progress: 80.03333333333333/666.6666717529297 = 12.0% done in 4.0s, 29.3s to go on time step 4812 (time=80.2), 0.000831265 s/step Meep progress: 158.71666666666667/666.6666717529297 = 23.8% done in 8.0s, 25.6s to go on time step 9536 (time=158.933), 0.000846831 s/step Meep progress: 239.76666666666665/666.6666717529297 = 36.0% done in 12.0s, 21.4s to go on time step 14400 (time=240), 0.000822458 s/step Meep progress: 321.46666666666664/666.6666717529297 = 48.2% done in 16.0s, 17.2s to go on time step 19304 (time=321.733), 0.000815746 s/step Meep progress: 402.9/666.6666717529297 = 60.4% done in 20.0s, 13.1s to go on time step 24189 (time=403.15), 0.000818995 s/step Meep progress: 484.1333333333333/666.6666717529297 = 72.6% done in 24.0s, 9.0s to go on time step 29067 (time=484.45), 0.000820091 s/step Meep progress: 565.6833333333333/666.6666717529297 = 84.9% done in 28.0s, 5.0s to go on time step 33961 (time=566.017), 0.000817343 s/step Meep progress: 646.4166666666666/666.6666717529297 = 97.0% done in 32.0s, 1.0s to go on time step 38805 (time=646.75), 0.000825862 s/step run 1 finished at t = 666.6666666666666 (40000 timesteps)
plt.figure(dpi=150)
plt.plot(s, -forces_odd / fluxes_odd, "rs", label="anti-symmetric")
plt.plot(s, -forces_even / fluxes_even, "bo", label="symmetric")
plt.grid(True)
plt.xlabel("waveguide separation s/a")
plt.ylabel("optical force (F/L)(ac/P)")
plt.legend(loc="upper right")
plt.show()
The following figure shows the $E_y$ mode profiles at a waveguide separation distance of 0.1 μm. This figure was generated using the plot2D
routine and shows the source and flux monitor (red hatches), force monitors (blue lines), and PMLs (green hatches) surrounding the cell. From the force spectra shown above, at this separation distance the anti-symmetric mode is repulsive whereas the symmetric mode is attractive.
The MPB simulation is in examples/parallel-wvgs-mpb.py. There are important differences related to the coordinate dimensions between the MPB and Meep scripts. In the MPB script, the 2d cell is defined using the $yz$ plane, the waveguide propagation axis is $x$,and the waveguide separation axis is $y$. As a consequence, the num_bands
parameter is always 1
since the $y$ parity of the mode can be defined explicitly (i.e., run_yodd_zodd
vs. run_yeven_zodd
). This is different from the Meep script since Meep requires that a 2d cell be defined in the $xy$ plane. MPB has no such requirement.
import meep as mp
from meep import mpb
import numpy as np
import matplotlib.pyplot as plt
resolution = 128 # pixels/μm
Si = mp.Medium(index=3.45)
syz = 10
geometry_lattice = mp.Lattice(size=mp.Vector3(0, syz, syz))
k_points = [mp.Vector3(0.5)]
num_bands = 1
tolerance = 1e-9
a = 1.0 # waveguide width
def parallel_waveguide(s, yodd):
geometry = [
mp.Block(
center=mp.Vector3(0, -0.5 * (s + a), 0),
size=mp.Vector3(mp.inf, a, a),
material=Si,
),
mp.Block(
center=mp.Vector3(0, 0.5 * (s + a), 0),
size=mp.Vector3(mp.inf, a, a),
material=Si,
),
]
ms = mpb.ModeSolver(
resolution=resolution,
k_points=k_points,
geometry_lattice=geometry_lattice,
geometry=geometry,
num_bands=num_bands,
tolerance=tolerance,
)
if yodd:
ms.run_yodd_zodd()
else:
ms.run_yeven_zodd()
f = ms.get_freqs()[0]
vg = ms.compute_group_velocity_component(mp.Vector3(1, 0, 0))[0]
return f, vg
ss = np.arange(0.05, 1.15, 0.1)
f_odd = np.zeros(len(ss))
vg_odd = np.zeros(len(ss))
f_even = np.zeros(len(ss))
vg_even = np.zeros(len(ss))
for j in range(len(ss)):
f_odd[j], vg_odd[j] = parallel_waveguide(ss[j], True)
f_even[j], vg_even[j] = parallel_waveguide(ss[j], False)
ds = ss[1] - ss[0]
def compute_force(f, vg):
f_avg = 0.5 * (f[:-1] + f[1:])
df = f[1:] - f[:-1]
vg_avg = 0.5 * (vg[:-1] + vg[1:])
return -1 / f_avg * df / ds * 1 / vg_avg
force_odd = compute_force(f_odd, vg_odd)
force_even = compute_force(f_even, vg_even)
Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.55,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.55,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3206050395965576 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 20 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.233911 elapsed time for k point: 39.92626595497131 total elapsed time for run: 42.247997999191284 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.55,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.55,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.2972378730773926 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 17 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.214446 elapsed time for k point: 33.999393939971924 total elapsed time for run: 36.29679226875305 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.6,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.6,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.31347393989563 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.232136 elapsed time for k point: 35.45386290550232 total elapsed time for run: 37.767595291137695 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.6,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.6,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3267719745635986 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.218002 elapsed time for k point: 38.01395606994629 total elapsed time for run: 40.34090757369995 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.65,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.65,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3398044109344482 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 17 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.230609 elapsed time for k point: 34.236557722091675 total elapsed time for run: 36.57751989364624 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.65,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.65,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3188600540161133 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.220388 elapsed time for k point: 36.10376501083374 total elapsed time for run: 38.422903060913086 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.7,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.7,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3080191612243652 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.229408 elapsed time for k point: 38.052414655685425 total elapsed time for run: 40.36163353919983 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.7,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.7,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.351583242416382 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 17 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.222012 elapsed time for k point: 34.26416039466858 total elapsed time for run: 36.61595106124878 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.75,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.75,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.34535813331604 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.2285 elapsed time for k point: 36.24232602119446 total elapsed time for run: 38.587929487228394 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.75,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.75,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.342602014541626 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.223137 elapsed time for k point: 36.02590990066528 total elapsed time for run: 38.3686728477478 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.8,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.8,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3229269981384277 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.227819 elapsed time for k point: 37.89797854423523 total elapsed time for run: 40.22118377685547 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.8,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.8,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3231875896453857 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.223921 elapsed time for k point: 35.854113817214966 total elapsed time for run: 38.17753458023071 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.85,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.85,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3750038146972656 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 18 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.227319 elapsed time for k point: 36.51261854171753 total elapsed time for run: 38.88789224624634 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.85,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.85,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3955740928649902 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 17 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.224479 elapsed time for k point: 34.263073205947876 total elapsed time for run: 36.65884232521057 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.9,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.9,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3697447776794434 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 17 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.226949 elapsed time for k point: 33.61285185813904 total elapsed time for run: 35.98284029960632 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.9,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.9,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3623385429382324 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.224876 elapsed time for k point: 37.994656801223755 total elapsed time for run: 40.35737872123718 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.95,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.95,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3798489570617676 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.226677 elapsed time for k point: 38.10903787612915 total elapsed time for run: 40.48903441429138 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-0.95,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,0.95,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.361907482147217 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 19 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.22516 elapsed time for k point: 37.75140643119812 total elapsed time for run: 40.113561391830444 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-1,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,1,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyodd. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.344741106033325 solve_kpoint (0.5,0,0): zoddyoddfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyodd band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 20 iterations. zoddyoddfreqs:, 1, 0.5, 0, 0, 0.5, 0.22648 elapsed time for k point: 39.63300061225891 total elapsed time for run: 41.97804236412048 done Initializing eigensolver data Computing 1 bands with 1e-09 tolerance Working in 3 dimensions. Grid size is 1 x 1280 x 1280. Solving for 1 bands at a time. Creating Maxwell data... Mesh size is 3. Lattice vectors: (1, 0, 0) (0, 10, 0) (0, 0, 10) Cell volume = 100 Reciprocal lattice vectors (/ 2 pi): (1, -0, 0) (-0, 0.1, -0) (0, -0, 0.1) Geometric objects: block, center = (0,-1,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) block, center = (0,1,0) size (1e+20,1,1) axes (1,0,0), (0,1,0), (0,0,1) Geometric object tree has depth 1 and 2 object nodes (vs. 2 actual objects) Initializing epsilon function... Allocating fields... Solving for band polarization: zoddyeven. Initializing fields to random numbers... 1 k-points Vector3<0.5, 0.0, 0.0> elapsed time for initialization: 2.3879048824310303 solve_kpoint (0.5,0,0): zoddyevenfreqs:, k index, k1, k2, k3, kmag/2pi, zoddyeven band 1 Solving for bands 1 to 1... Finished solving for bands 1 to 1 after 20 iterations. zoddyevenfreqs:, 1, 0.5, 0, 0, 0.5, 0.225369 elapsed time for k point: 39.115745067596436 total elapsed time for run: 41.503973960876465 done
plt.figure(dpi=200)
plt.plot(ss[:-1], force_odd, "b-", label="anti-symmetric")
plt.plot(ss[:-1], force_even, "r-", label="symmetric")
plt.xlabel("waveguide separation s/a")
plt.ylabel("optical force (F/L)(ac/P)")
plt.legend(loc="upper right")
plt.xticks(np.arange(0, 1.2, 0.2))
plt.yticks(np.arange(-1.5, 1.0, 0.5))
plt.show()