Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions modesolverpy/_mode_solver_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ def solve(self, neigs, tol=0, mode_profiles=True, initial_mode_guess=None):
eigvals = eigs
eigvecs = None

neff = self.wl * scipy.sqrt(eigvals) / (2 * numpy.pi)
neff = self.wl * numpy.sqrt(eigvals) / (2 * numpy.pi)
if mode_profiles:
phi = []
for ieig in range(neigs):
Expand Down Expand Up @@ -970,7 +970,7 @@ def solve(self, neigs=4, tol=0, guess=None, mode_profiles=True, initial_mode_gue
return_eigenvectors=mode_profiles,
sigma=shift)

neffs = self.wl * scipy.sqrt(eigvals) / (2 * numpy.pi)
neffs = self.wl * numpy.sqrt(eigvals) / (2 * numpy.pi)
if mode_profiles:
Hxs = []
Hys = []
Expand Down Expand Up @@ -1032,7 +1032,7 @@ def __init__(self, wl, x, y, neff, Ex, Ey, Ez, Hx, Hy, Hz):
def norm(self):
x = centered1d(self.x)
y = centered1d(self.y)
return scipy.sqrt(trapz2(self.intensity(), x=x, y=y))
return numpy.sqrt(trapz2(self.intensity(), x=x, y=y))

def normalize(self):
n = self.norm()
Expand Down
11 changes: 6 additions & 5 deletions modesolverpy/structure_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,10 @@ def eps_func(self):
returns the permittivity profile of the structure,
interpolating if necessary.
'''
interp_real = interpolate.interp2d(self.x, self.y, self.eps.real)
interp_imag = interpolate.interp2d(self.x, self.y, self.eps.imag)
interp = lambda x, y: interp_real(x, y) + 1.j*interp_imag(x, y)
interp_real = interpolate.RegularGridInterpolator((self.x, self.y), self.eps.real.T)
interp_imag = interpolate.RegularGridInterpolator((self.x, self.y), self.eps.imag.T)
interp = lambda x, y: (interp_real((x.reshape((1, -1)), y.reshape((-1, 1)))) +
1.j*interp_imag((x.reshape((1, -1)), y.reshape((-1, 1)))))
return interp

@property
Expand All @@ -177,7 +178,7 @@ def n_func(self):
returns the refractive index profile of the structure,
interpolating if necessary.
'''
return interpolate.interp2d(self.x, self.y, self.n)
return interpolate.RegularGridInterpolator((self.x, self.y), self.n)

def _add_triangular_sides(self, xy_mask, angle, y_top_right, y_bot_left,
x_top_right, x_bot_left, n_material):
Expand Down Expand Up @@ -297,7 +298,7 @@ def __init__(self, x_step, y_step, x_max, y_max, x_min=0., y_min=0.,
self.x_step = x_step
self.y_step = y_step
self.n_background = n_background
self._n = np.ones((self.y.size,self.x.size), 'complex_') * n_background
self._n = np.ones((self.y.size,self.x.size), 'complex') * n_background

@property
def n(self):
Expand Down