[fdtd.misc] fix some packets/pulses

This commit is contained in:
Jan Petykiewicz 2026-04-17 19:35:03 -07:00
commit 8d49901b58

View file

@ -53,8 +53,8 @@ def gaussian_packet(
t0 = ii * dt - delay t0 = ii * dt - delay
envelope = numpy.sqrt(numpy.sqrt(2 * alpha / pi)) * numpy.exp(-alpha * t0 * t0) envelope = numpy.sqrt(numpy.sqrt(2 * alpha / pi)) * numpy.exp(-alpha * t0 * t0)
if one_sided and t0 > 0: if one_sided:
envelope = 1 envelope = numpy.where(t0 > 0, 1.0, envelope)
cc = numpy.cos(omega * t0) cc = numpy.cos(omega * t0)
ss = numpy.sin(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 logger.warning('meanas.fdtd.misc functions are still very WIP!') # TODO
omega = 2 * pi / wl omega = 2 * pi / wl
freq = 1 / wl freq = 1 / wl
# r0 = omega / 2
from scipy.optimize import root_scalar 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 = delay_results.root
delay = numpy.ceil(delay * freq) / freq # force delay to integer number of periods to maintain phase delay = numpy.ceil(delay * freq) / freq # force delay to integer number of periods to maintain phase