Potential & Stimulus Operators
All stimulus operators take a destination field and an options table; most support scale_by_dt (bool) to scale writes by the simulation timestep.
〰️ Sine
Section titled “〰️ Sine”sim_add_stimulus_operator(ctx, field, opts)
Travelling sinusoid.
type(required):"stimulus_sine".amplitude(required): peak amplitude.wavenumber(required): spatial wavenumber.omega(required): angular frequency.phase: phase offset.origin,spacing: map index to coordinates.time_offset: temporal shift.nominal_dt,fixed_clock: lock timing when desired.velocity: propagation speed.rotation: complex phase rotation on output.scale_by_dt: scale writes by dt.
Example:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_sine", amplitude = 0.3, wavenumber = 1.0, omega = 0.6, velocity = 0.2})🌊 Standing Wave
Section titled “🌊 Standing Wave”sim_add_stimulus_operator(ctx, field, opts)
Standing-wave sinusoid (velocity defaults to 0).
type(required):"stimulus_standing".- Same parameters as
stimulus_sine(amplitude, wavenumber, omega, phase, origin, spacing, time_offset, nominal_dt/fixed_clock, rotation). - Velocity typically 0; use
phaseto set node/antinode placement.
Example:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_standing", amplitude = 0.4, wavenumber = 0.8, omega = 0.8, phase = 0.25})🐦 Chirp
Section titled “🐦 Chirp”sim_add_stimulus_operator(ctx, field, opts)
Sinusoid with time-varying frequency/wavenumber.
type(required):"stimulus_chirp".amplitude,wavenumber,omega,phase,origin,spacing.kdot(wavenumber rate),wdot(frequency rate) for chirp.velocity,rotation,time_offset.nominal_dt,fixed_clock,scale_by_dt.
Example:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_chirp", amplitude = 0.5, wavenumber = 1.0, omega = 0.3, kdot = 0.1, wdot = 0.2})💨 Travelling Gaussian Envelope
Section titled “💨 Travelling Gaussian Envelope”sim_add_stimulus_operator(ctx, field, opts)
Travelling sinusoid with Gaussian envelope.
type(required):"stimulus_gaussian_travel".amplitude,wavenumber,omega,phase,origin,spacing.- Envelope:
gaussian_center,gaussian_sigma(set >0 to enable). velocity,rotation,time_offset.nominal_dt,fixed_clock,scale_by_dt.
Example:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gaussian_travel", amplitude = 0.6, wavenumber = 1.0, omega = 0.5, gaussian_sigma = 18.0, gaussian_center = 0.0, velocity = -0.3})💥 Gaussian Pulse
Section titled “💥 Gaussian Pulse”sim_add_stimulus_operator(ctx, field, opts)
Pure Gaussian envelope (no carrier).
type(required):"stimulus_gaussian".amplitude(required): peak amplitude.center(default 0): envelope center coordinate.sigma(required): width of Gaussian.velocity(default 0): center propagation speed.origin,spacing: index-to-coordinate mapping.time_offset(optional),rotation(complex phase),nominal_dt,scale_by_dt.
Examples:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gaussian", center = 128, sigma = 30, amplitude = 1.0})
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gaussian", center = 0, sigma = 10, amplitude = 0.5})🌈 Spectral Lines
Section titled “🌈 Spectral Lines”sim_add_stimulus_operator(ctx, field, opts)
Harmonic spikes in frequency.
type(required):"stimulus_spectral_lines".amplitude(required): peak amplitude.wavenumber,omega,phase: base line parameters.harmonic_count(≥1): number of lines.harmonic_power(≥0): power weighting across harmonics.fixed_clock(bool),nominal_dt(optional),scale_by_dt.
Examples:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_spectral_lines", amplitude = 1.0, wavenumber = 0.5, harmonic_count = 1})
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_spectral_lines", amplitude = 0.2, harmonic_count = 4, harmonic_power = 0.9, fixed_clock = true})🏁 Checkerboard
Section titled “🏁 Checkerboard”sim_add_stimulus_operator(ctx, field, opts)
Checker/stripe pattern; works on complex fields.
type(required):"stimulus_checkerboard".amplitude(required): pattern amplitude.period_x,period_y: periods along each axis.checker_phase: scalar phase offset.checker_complex_phase: complex rotation applied to pattern.scale_by_dt: scale writes by dt.
Examples:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_checkerboard", amplitude = 1.0, period_x = 8, period_y = 8})
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_checkerboard", amplitude = 0.5, period_x = 12, period_y = 6, checker_complex_phase = 0.75})📦 Gabor Kernel
Section titled “📦 Gabor Kernel”sim_add_stimulus_operator(ctx, field, opts)
Gaussian-windowed sinusoid.
type(required):"stimulus_gabor".amplitude(required): peak amplitude.wavenumber,omega,phase: carrier controls.center,sigma(required): Gaussian window location/width.origin,spacing: coordinate mapping.velocity,rotation,time_offset.nominal_dt,fixed_clock,scale_by_dt.
Examples:
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gabor", amplitude = 0.4, sigma = 12.0, wavenumber = 0.5})
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gabor", amplitude = 0.2, omega = 0.5, rotation = 0.3, center = 64, sigma = 20})