[fdtd.misc] fix some packets/pulses
This commit is contained in:
parent
9d419aa3ea
commit
8d49901b58
1 changed files with 8 additions and 4 deletions
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue