From 8d49901b58b3489905aa28a561a84e7468bb1603 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Fri, 17 Apr 2026 19:35:03 -0700 Subject: [PATCH] [fdtd.misc] fix some packets/pulses --- meanas/fdtd/misc.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/meanas/fdtd/misc.py b/meanas/fdtd/misc.py index 1d90c32..89ccb3d 100644 --- a/meanas/fdtd/misc.py +++ b/meanas/fdtd/misc.py @@ -53,8 +53,8 @@ def gaussian_packet( t0 = ii * dt - delay envelope = numpy.sqrt(numpy.sqrt(2 * alpha / pi)) * numpy.exp(-alpha * t0 * t0) - if one_sided and t0 > 0: - envelope = 1 + if one_sided: + envelope = numpy.where(t0 > 0, 1.0, envelope) cc = numpy.cos(omega * t0) ss = numpy.sin(omega * t0) @@ -94,10 +94,14 @@ def ricker_pulse( logger.warning('meanas.fdtd.misc functions are still very WIP!') # TODO omega = 2 * pi / wl freq = 1 / wl - # r0 = omega / 2 from scipy.optimize import root_scalar - delay_results = root_scalar(lambda tt: (1 - omega * omega * tt * tt / 2) * numpy.exp(-omega * omega / 4 * tt * tt) - turn_on, x0=0, x1=-2 / omega) + delay_results = root_scalar( + lambda tt: (1 - omega * omega * tt * tt / 2) * numpy.exp(-omega * omega * tt * tt / 4) - turn_on, + x0=0, + x1=-2 / omega, + ) + delay = delay_results.root delay = numpy.ceil(delay * freq) / freq # force delay to integer number of periods to maintain phase