Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RuntimeError: meep: simulation fields are NaN or Inf #2643

Open
niubiworker opened this issue Sep 16, 2023 · 2 comments
Open

RuntimeError: meep: simulation fields are NaN or Inf #2643

niubiworker opened this issue Sep 16, 2023 · 2 comments

Comments

@niubiworker
Copy link

I want to calculate the reflectivity, transmittance, and loss of photonic crystal waveguides, but I don't know why there are errors like the title. My code is as follows:

import numpy as np
import meep as mp
import matplotlib.pyplot as plt
from meep.materials import LiNbO3
resolution = 30 # pixels/a

a = 0.775         # units of um
r = 0.315*a         # units of um
h = 0.3       # units of um

period_num = 50
wave_length = 1.55
fcen = 1/wave_length
df = 0.1
pml_height = 0.5*wave_length
y_num = 6

geometry_up_boundary = y_num*np.sqrt(3)*a
geometry_left_boundary = period_num*a+2*pml_height
size = mp.Vector3(geometry_left_boundary,h+2*pml_height,geometry_up_boundary)
w = np.sqrt(3)

geometry = [mp.Block(center=mp.Vector3(0,0,0),size=mp.Vector3(mp.inf,h,w), material=LiNbO3)]

pml_layers = [mp.PML(pml_height)]

sources = [mp.Source(mp.GaussianSource(frequency=fcen,fwidth=df),
                     component=mp.Ex,
                     center=mp.Vector3(-geometry_left_boundary/2+pml_height,0,0),
                     size=mp.Vector3(0,h,w))]

sim = mp.Simulation(resolution=resolution,
                    cell_size=size,
                    geometry=geometry,
                    boundary_layers=pml_layers,
                    sources=sources)

nfreq = 100
ref1_local = -period_num/2*a+pml_height+0.5*a

ref1_fr = mp.FluxRegion(center=mp.Vector3(ref1_local,0,0),
                        size=mp.Vector3(0,2*h,2*w),
                        direction=mp.X)
ref1 = sim.add_flux(fcen,df,nfreq,ref1_fr)

tran_fr = mp.FluxRegion(center=mp.Vector3(ref1_local+period_num*a,0,0),
                        size=mp.Vector3(0,2*h,2*w),
                        direction=mp.X)
tran = sim.add_flux(fcen,df,nfreq,tran_fr)

# 运行仿真
pt = mp.Vector3(ref1_local+period_num*a-0.5*a,0,0)
sim.run(until_after_sources=mp.stop_when_fields_decayed(50, mp.Ex, pt, 1e-3))
straight_ref1_data = sim.get_flux_data(ref1)
straight_tran_flux = mp.get_fluxes(tran)

sim.reset_meep()

geometry = [mp.Block(center=mp.Vector3(0,0,0),axis=mp.Vector3(y=1),size=mp.Vector3(mp.inf,h,geometry_up_boundary), material=LiNbO3)]
for i in np.linspace(-geometry_left_boundary,geometry_left_boundary,period_num*2+1):
    for j in np.linspace(-geometry_up_boundary,geometry_up_boundary,2*y_num+1):
        if j != 0:
            geometry += [mp.Cylinder(center=mp.Vector3(i, 0, j, ), height=mp.inf, material=mp.air, radius=r,axis=mp.Vector3(y=1))]
            geometry += [mp.Cylinder(center=mp.Vector3(i + 0.5 * a, 0, np.sqrt(3) / 2 * a + j, ), height=mp.inf, material=mp.air,radius=r,axis=mp.Vector3(y=1))]
            geometry += [mp.Cylinder(center=mp.Vector3(i + 0.5 * a, 0, -np.sqrt(3) / 2 * a + j, ), height=mp.inf, material=mp.air,radius=r,axis=mp.Vector3(y=1))]

sim = mp.Simulation(resolution=resolution,
                    cell_size=size,
                    geometry=geometry,
                    boundary_layers=pml_layers,
                    sources=sources)

ref1 = sim.add_flux(fcen,df,nfreq,ref1_fr)
tran = sim.add_flux(fcen,df,nfreq,tran_fr)
sim.load_minus_flux_data(ref1,straight_ref1_data)
sim.run(until_after_sources=mp.stop_when_fields_decayed(50, mp.Ex, pt, 1e-3))

pc_ref1_flux = mp.get_fluxes(ref1)
pc_tran_flux = mp.get_fluxes(tran)

flux_freqs = mp.get_flux_freqs(ref1)

wl = []
Rs = []
Ts = []
for i in range(nfreq):
    wl = np.append(wl, 1 / flux_freqs[i])
    Rs = np.append(Rs, -pc_ref1_flux[i] / straight_tran_flux[i])
    Ts = np.append(Ts, pc_tran_flux[i] / straight_tran_flux[i])

plt.plot(wl, Rs, "bo-", label="reflectance")
plt.plot(wl, Ts, "ro-", label="transmittance")
plt.plot(wl, 1 - Rs - Ts, "go-", label="loss")
plt.xlim(min(wl),max(wl))
plt.xlabel("wavelength (μm)")
plt.legend(loc="upper right")
plt.show()

However, once run, the error shown in the title will appear, and the specific error and simulation process are as follows:
/home/linux1234/desired_prefix/envs/mp/bin/python /home/linux1234/PycharmProjects/pythonProject/quexian/123.py
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

Initializing structure...
time for choose_chunkdivision = 0.000597 s
Working in 3D dimensions.
Computational cell is 40.3 x 1.86667 x 8.06667 with resolution 30
block, center = (0,0,0)
size (1e+20,0.3,1.73205)
axes (1,0,0), (0,1,0), (0,0,1)
dielectric constant epsilon diagonal = (1,1,1)
Warning: grid volume is not an integer number of pixels; cell size will be rounded to nearest pixel.
time for set_epsilon = 14.4656 s
lorentzian susceptibility: frequency=0.0490243, gamma=0
lorentzian susceptibility: frequency=3.87492, gamma=0
lorentzian susceptibility: frequency=6.98942, gamma=0
lorentzian susceptibility: frequency=0.0459025, gamma=0
lorentzian susceptibility: frequency=4.11206, gamma=0
lorentzian susceptibility: frequency=7.52923, gamma=0

on time step 1 (time=0.0166667), 22.8549 s/step
on time step 8 (time=0.133333), 0.604817 s/step
on time step 15 (time=0.25), 0.626245 s/step
on time step 22 (time=0.366667), 0.614 s/step
on time step 29 (time=0.483333), 0.615067 s/step
on time step 36 (time=0.6), 0.61398 s/step
on time step 43 (time=0.716667), 0.626642 s/step
on time step 48 (time=0.8), 1.02203 s/step
on time step 51 (time=0.85), 2.03051 s/step
on time step 53 (time=0.883333), 2.14144 s/step
on time step 56 (time=0.933333), 1.98597 s/step
on time step 58 (time=0.966667), 2.03453 s/step
on time step 60 (time=1), 2.00088 s/step
on time step 63 (time=1.05), 1.90624 s/step
on time step 66 (time=1.1), 1.92417 s/step
on time step 69 (time=1.15), 1.88141 s/step
on time step 72 (time=1.2), 1.93343 s/step
on time step 75 (time=1.25), 1.93431 s/step
on time step 78 (time=1.3), 1.99931 s/step
on time step 80 (time=1.33333), 2.00422 s/step
on time step 85 (time=1.41667), 0.814694 s/step
on time step 92 (time=1.53333), 0.637423 s/step
on time step 99 (time=1.65), 0.626297 s/step
on time step 106 (time=1.76667), 0.610201 s/step
on time step 113 (time=1.88333), 0.61902 s/step
on time step 120 (time=2), 0.621419 s/step
on time step 127 (time=2.11667), 0.604494 s/step
on time step 134 (time=2.23333), 0.616622 s/step
on time step 141 (time=2.35), 0.614138 s/step
on time step 148 (time=2.46667), 0.60537 s/step
on time step 155 (time=2.58333), 0.615597 s/step
on time step 162 (time=2.7), 0.611367 s/step
on time step 169 (time=2.81667), 0.634687 s/step
on time step 176 (time=2.93333), 0.649754 s/step
on time step 183 (time=3.05), 0.622887 s/step
on time step 190 (time=3.16667), 0.621464 s/step
on time step 197 (time=3.28333), 0.632365 s/step
on time step 204 (time=3.4), 0.650583 s/step
on time step 211 (time=3.51667), 0.635098 s/step
on time step 218 (time=3.63333), 0.610763 s/step
on time step 225 (time=3.75), 0.614155 s/step
on time step 232 (time=3.86667), 0.622954 s/step
on time step 239 (time=3.98333), 0.612168 s/step
on time step 246 (time=4.1), 0.619603 s/step
on time step 253 (time=4.21667), 0.620951 s/step
on time step 260 (time=4.33333), 0.624882 s/step
on time step 267 (time=4.45), 0.645817 s/step
on time step 274 (time=4.56667), 0.636539 s/step
on time step 281 (time=4.68333), 0.638238 s/step
on time step 288 (time=4.8), 0.653095 s/step
on time step 295 (time=4.91667), 0.63594 s/step
on time step 302 (time=5.03333), 0.626313 s/step
on time step 309 (time=5.15), 0.629259 s/step
on time step 316 (time=5.26667), 0.617677 s/step
on time step 323 (time=5.38333), 0.629001 s/step
on time step 330 (time=5.5), 0.645157 s/step
on time step 337 (time=5.61667), 0.622169 s/step
on time step 344 (time=5.73333), 0.638939 s/step
on time step 351 (time=5.85), 0.625236 s/step
on time step 358 (time=5.96667), 0.64465 s/step
on time step 365 (time=6.08333), 0.650929 s/step
on time step 372 (time=6.2), 0.644038 s/step
on time step 379 (time=6.31667), 0.649843 s/step
on time step 386 (time=6.43333), 0.648836 s/step
on time step 393 (time=6.55), 0.631284 s/step
on time step 400 (time=6.66667), 0.63875 s/step
on time step 407 (time=6.78333), 0.630869 s/step
on time step 414 (time=6.9), 0.626096 s/step
on time step 421 (time=7.01667), 0.651884 s/step
on time step 428 (time=7.13333), 0.656138 s/step
on time step 435 (time=7.25), 0.646762 s/step
on time step 442 (time=7.36667), 0.647793 s/step
on time step 449 (time=7.48333), 0.661101 s/step
on time step 456 (time=7.6), 0.659582 s/step
on time step 463 (time=7.71667), 0.638901 s/step
on time step 470 (time=7.83333), 0.633204 s/step
on time step 477 (time=7.95), 0.655886 s/step
on time step 484 (time=8.06667), 0.634033 s/step
on time step 491 (time=8.18333), 0.642904 s/step
on time step 498 (time=8.3), 0.630999 s/step
on time step 505 (time=8.41667), 0.619946 s/step
on time step 512 (time=8.53333), 0.654929 s/step
on time step 519 (time=8.65), 0.636282 s/step
on time step 525 (time=8.75), 0.695853 s/step
on time step 532 (time=8.86667), 0.654309 s/step
on time step 539 (time=8.98333), 0.654207 s/step
on time step 545 (time=9.08333), 0.678959 s/step
on time step 551 (time=9.18333), 0.673076 s/step
on time step 558 (time=9.3), 0.662913 s/step
on time step 565 (time=9.41667), 0.667029 s/step
on time step 571 (time=9.51667), 0.67494 s/step
on time step 578 (time=9.63333), 0.668644 s/step
on time step 585 (time=9.75), 0.656211 s/step
on time step 592 (time=9.86667), 0.643185 s/step
on time step 599 (time=9.98333), 0.624451 s/step
on time step 606 (time=10.1), 0.624211 s/step
on time step 613 (time=10.2167), 0.630093 s/step
on time step 620 (time=10.3333), 0.628231 s/step
on time step 627 (time=10.45), 0.623446 s/step
on time step 634 (time=10.5667), 0.622409 s/step
on time step 641 (time=10.6833), 0.621329 s/step
on time step 648 (time=10.8), 0.626491 s/step
on time step 654 (time=10.9), 0.685371 s/step
on time step 661 (time=11.0167), 0.648521 s/step
on time step 668 (time=11.1333), 0.662043 s/step
on time step 675 (time=11.25), 0.651349 s/step
on time step 682 (time=11.3667), 0.620413 s/step
on time step 687 (time=11.45), 1.07707 s/step
on time step 690 (time=11.5), 1.91254 s/step
on time step 692 (time=11.5333), 2.05304 s/step
on time step 695 (time=11.5833), 1.93196 s/step
on time step 698 (time=11.6333), 1.94346 s/step
on time step 700 (time=11.6667), 2.01851 s/step
on time step 703 (time=11.7167), 1.90374 s/step
on time step 706 (time=11.7667), 1.84225 s/step
on time step 709 (time=11.8167), 1.66632 s/step
on time step 713 (time=11.8833), 1.30759 s/step
on time step 716 (time=11.9333), 1.84918 s/step
on time step 721 (time=12.0167), 0.806277 s/step
on time step 728 (time=12.1333), 0.625607 s/step
on time step 735 (time=12.25), 0.621484 s/step
on time step 742 (time=12.3667), 0.628592 s/step
on time step 749 (time=12.4833), 0.624753 s/step
on time step 756 (time=12.6), 0.625309 s/step
on time step 763 (time=12.7167), 0.618739 s/step
on time step 770 (time=12.8333), 0.648177 s/step
on time step 777 (time=12.95), 0.656505 s/step
on time step 784 (time=13.0667), 0.658027 s/step
on time step 791 (time=13.1833), 0.638748 s/step
on time step 798 (time=13.3), 0.610444 s/step
on time step 805 (time=13.4167), 0.639166 s/step
on time step 812 (time=13.5333), 0.637795 s/step
on time step 819 (time=13.65), 0.617986 s/step
on time step 826 (time=13.7667), 0.636869 s/step
on time step 833 (time=13.8833), 0.630152 s/step
on time step 840 (time=14), 0.628761 s/step
on time step 847 (time=14.1167), 0.640548 s/step
on time step 854 (time=14.2333), 0.646076 s/step
on time step 861 (time=14.35), 0.642396 s/step
on time step 868 (time=14.4667), 0.634067 s/step
on time step 875 (time=14.5833), 0.637989 s/step
on time step 882 (time=14.7), 0.659715 s/step
on time step 889 (time=14.8167), 0.657812 s/step
on time step 896 (time=14.9333), 0.658112 s/step
on time step 903 (time=15.05), 0.640776 s/step
on time step 910 (time=15.1667), 0.615886 s/step
on time step 917 (time=15.2833), 0.617782 s/step
on time step 924 (time=15.4), 0.616411 s/step
on time step 931 (time=15.5167), 0.618014 s/step
on time step 938 (time=15.6333), 0.620544 s/step
on time step 945 (time=15.75), 0.624011 s/step
on time step 952 (time=15.8667), 0.643808 s/step
on time step 959 (time=15.9833), 0.652131 s/step
on time step 966 (time=16.1), 0.635835 s/step
on time step 973 (time=16.2167), 0.651368 s/step
on time step 980 (time=16.3333), 0.635637 s/step
on time step 987 (time=16.45), 0.638766 s/step
on time step 994 (time=16.5667), 0.647672 s/step
on time step 1001 (time=16.6833), 0.621667 s/step
on time step 1008 (time=16.8), 0.637328 s/step
on time step 1015 (time=16.9167), 0.621818 s/step
on time step 1022 (time=17.0333), 0.621448 s/step
on time step 1029 (time=17.15), 0.640883 s/step
on time step 1036 (time=17.2667), 0.620066 s/step
on time step 1043 (time=17.3833), 0.621004 s/step
on time step 1050 (time=17.5), 0.63431 s/step
on time step 1057 (time=17.6167), 0.627028 s/step
on time step 1064 (time=17.7333), 0.628937 s/step
on time step 1071 (time=17.85), 0.621987 s/step
on time step 1078 (time=17.9667), 0.63114 s/step
on time step 1085 (time=18.0833), 0.633152 s/step
on time step 1092 (time=18.2), 0.629924 s/step
Traceback (most recent call last):
File "/home/linux1234/PycharmProjects/pythonProject/quexian/123.py", line 55, in
sim.run(until_after_sources=mp.stop_when_fields_decayed(50, mp.Ex, pt, 1e-3))
File "/home/linux1234/desired_prefix/envs/mp/lib/python3.11/site-packages/meep/simulation.py", line 4526, in run
self._run_sources_until(until_after_sources, step_funcs)
File "/home/linux1234/desired_prefix/envs/mp/lib/python3.11/site-packages/meep/simulation.py", line 2867, in _run_sources_until
self._run_until(new_conds, step_funcs)
File "/home/linux1234/desired_prefix/envs/mp/lib/python3.11/site-packages/meep/simulation.py", line 2825, in _run_until
self.fields.step()
File "/home/linux1234/desired_prefix/envs/mp/lib/python3.11/site-packages/meep/init.py", line 3040, in step
return _meep.fields_step(self)
^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: meep: simulation fields are NaN or Inf

Elapsed run time = 828.6849 s

Process finished with exit code 1
I hope my problem can be resolved here. Thank you very much

@smartalecH
Copy link
Collaborator

@chenshang2
Copy link

In fact, I think just using mp.Medium(epsilon_diag=(x,x,x)) for LiNbO3 will be enough for you to calculate the T and R, importing material from meep itself seems to require a high resolution and it is not that necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants