From 9d419aa3ea50dd70c1dc0e6b75d42075003acb42 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Fri, 17 Apr 2026 19:33:40 -0700 Subject: [PATCH] [fdtd.misc.gaussian_beam] avoid some nans at w0 near 0 --- meanas/fdtd/misc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meanas/fdtd/misc.py b/meanas/fdtd/misc.py index 3fb3371..1d90c32 100644 --- a/meanas/fdtd/misc.py +++ b/meanas/fdtd/misc.py @@ -156,11 +156,11 @@ def gaussian_beam( wz = numpy.sqrt(wz2) # == fwhm(z) / sqrt(2 * ln(2)) kk = 2 * pi / wl - Rz = zz * (1 + zr2 / z2) + inv_Rz = numpy.divide(zz, z2 + zr2, out=numpy.zeros_like(zz), where=(z2 + zr2) != 0) gouy = numpy.arctan(zz / zr) - gaussian = w0 / wz * numpy.exp(-r2 / wz2) * numpy.exp(1j * (kk * zz + kk * r2 / 2 / Rz - gouy)) + gaussian = w0 / wz * numpy.exp(-r2 / wz2) * numpy.exp(1j * (kk * zz + kk * r2 * inv_Rz / 2 - gouy)) row = gaussian[:, :, gaussian.shape[2] // 2] - norm = numpy.sqrt((row * row.conj()).sum()) + norm = numpy.linalg.norm(row) return gaussian / norm