Stimulus: Beam & Wavelet Families
On this page
These operators share the coordinate mapping and timing controls documented on Stimulus Operators. Most entries use add_stimulus_operator(ctx, field, opts) with the operator-specific type shown below.
Gaussian Pulse ๐ฅ
add_stimulus_operator(ctx, field, opts)
Generate a pure Gaussian envelope without carrier oscillation. Models localized pulses, initial conditions, and smooth spatial masks.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_gaussian_pulse".
Mathematical Formulation
1D:
2D separable:
Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
type |
string |
โ | โ | Must be "stimulus_gaussian_pulse" |
amplitude |
double |
unbounded | Peak amplitude (required) | |
center_x, center_y |
double |
0.0 |
unbounded | 1D/2D center position |
sigma_x, sigma_y |
double |
1.0 |
>0 | 1D/2D standard deviations |
velocity_x, velocity_y |
double |
0.0 |
unbounded | 1D/2D velocities |
time_offset |
double |
0.0 |
unbounded | Temporal shift |
rotation |
double |
0.0 |
unbounded | Complex phase rotation |
Plus timing parameters.
Examples
-- Static 1D Gaussian
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gaussian_pulse",
coord_center_x = 128,
sigma_x = 30,
amplitude = 1.0
})
-- Moving pulse
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gaussian_pulse",
coord_center_x = 0,
sigma_x = 10,
amplitude = 0.5,
velocity_x = 2.0
})
-- 2D elliptical Gaussian
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gaussian_pulse",
amplitude = 0.8,
coord_mode = "separable",
coord_center_x = 128,
coord_center_y = 128,
sigma_x = 20,
sigma_y = 40
})
Gabor Kernel ๐ฆ
add_stimulus_operator(ctx, field, opts)
Generate a Gaussian-windowed sinusoid (Gabor function). Optimal for joint time-frequency localization and models neural receptive fields.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_gabor".
Mathematical Formulation
1D:
2D with envelope rotation:
where are coordinates rotated by envelope_angle.
Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
type |
string |
โ | โ | Must be "stimulus_gabor" |
amplitude |
double |
unbounded | Peak amplitude (required) | |
wavenumber |
double |
unbounded | Carrier wavenumber | |
omega |
double |
0.0 |
unbounded | Carrier frequency |
phase |
double |
0.0 |
unbounded | Carrier phase |
center_x, center_y |
double |
0.0 |
unbounded | 1D/2D center |
sigma_x, sigma_y |
double |
1.0 |
>0 | 1D/2D envelope widths |
velocity_x, velocity_y |
double |
0.0 |
unbounded | 1D/2D velocities |
envelope_angle |
double |
0.0 |
unbounded | Envelope rotation (radians) |
rotation |
double |
0.0 |
unbounded | Complex output rotation |
time_offset |
double |
0.0 |
unbounded | Temporal shift |
Plus timing parameters.
Examples
-- 1D Gabor wavelet
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gabor",
amplitude = 0.4,
sigma_x = 12.0,
wavenumber = 0.5
})
-- Moving Gabor pulse
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gabor",
amplitude = 0.2,
omega = 0.5,
rotation = 0.3,
coord_center_x = 64,
sigma_x = 20,
velocity_x = 1.0
})
-- 2D oriented Gabor (receptive field model)
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_gabor",
amplitude = 0.5,
coord_mode = "separable",
coord_center_x = 128,
coord_center_y = 128,
sigma_x = 15,
sigma_y = 30,
wavenumber = 0.3,
envelope_angle = math.pi / 4
})
Morlet Wavelet Field ๐
add_stimulus_operator(ctx, field, opts)
Generate a multi-scale Morlet wavelet packet field: a superposition of Gaussian-windowed complex sinusoids at geometrically-spaced spatial scales. Supports drifting center position, orientation control, and explicit coordinate mapping.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_morlet_field".
Mathematical Formulation
Each scale contributes a complex Morlet atom at effective time :
where rotated local coordinates are
with per-scale definitions:
- (
base_wavenumberรscale_growth) - (
sigma_baseรsigma_growth)
When zero_mean = true, the implementation subtracts the standard Morlet correction from the real carrier term only:
The injected write is normalized by scale count:
For real fields, only is added. For complex fields, both real and imaginary parts are added, then rotation is applied.
Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
type |
string |
โ | โ | Must be "stimulus_morlet_field" |
amplitude |
double |
0.0 |
unbounded | Overall amplitude (0.0 writes nothing) |
scales |
integer |
4 |
1..64 | Number of Morlet scales (clamped to 64) |
base_wavenumber |
double |
1.0 |
unbounded | Carrier wavenumber at scale 0 (rad/unit) |
scale_growth |
double |
2.0 |
nonzero | Geometric growth of carrier wavenumber (absolute value used; zero falls back to default) |
sigma_base |
double |
0.75 |
(0, 8] | Gaussian envelope width at scale 0 |
sigma_growth |
double |
1.5 |
nonzero | Geometric growth of envelope width (absolute value used; zero falls back to default) |
center_u |
double |
0.0 |
unbounded | Wavelet center along local u coordinate |
center_v |
double |
0.0 |
unbounded | Wavelet center along local v coordinate |
velocity_u |
double |
0.0 |
unbounded | Center drift velocity along u (units/s) |
velocity_v |
double |
0.0 |
unbounded | Center drift velocity along v (units/s) |
orientation |
double |
0.0 |
unbounded | Wavelet orientation angle (radians) |
orientation_rate |
double |
0.0 |
unbounded | Orientation drift rate (rad/s) |
omega |
double |
0.0 |
unbounded | Temporal angular frequency (rad/s) |
phase |
double |
0.0 |
unbounded | Global phase offset (radians) |
time_offset |
double |
0.0 |
unbounded | Additional time shift |
rotation |
double |
0.0 |
unbounded | Complex phase rotation on output (radians) |
zero_mean |
boolean |
true |
โ | Apply Morlet zero-mean correction |
scale_by_dt |
boolean |
false |
โ | Scale writes by dt |
use_wavevector |
boolean |
false |
โ | Evaluate in (kx,ky) wavevector frame (also auto-enabled if nonzero kx or ky is provided) |
kx, ky |
double |
0.0 |
unbounded | Wavevector components; if wavevector mode is active and both are zero, runtime uses (1, 0) |
Plus coordinate mapping parameters (coord_mode, coord_axis, coord_combine, coord_angle, origin_x/y, spacing_x/y, coord_center_x/y, coord_velocity_x/y, spiral params).
Examples
-- Basic 5-scale Morlet wavelet field
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_morlet_field",
amplitude = 0.8,
scales = 5,
base_wavenumber = 1.2,
sigma_base = 0.75
})
-- Oriented and drifting Morlet
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_morlet_field",
amplitude = 0.6,
scales = 4,
base_wavenumber = 1.0,
orientation = math.pi / 4,
velocity_u = 0.5
})
-- Slowly rotating wavelet field
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_morlet_field",
amplitude = 0.5,
scales = 6,
base_wavenumber = 0.8,
scale_growth = 1.8,
sigma_base = 0.9,
orientation_rate = 0.15
})
-- High-sigma broad envelope with temporal oscillation
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_morlet_field",
amplitude = 0.4,
scales = 3,
base_wavenumber = 2.0,
sigma_base = 1.5,
sigma_growth = 1.2,
omega = 0.5
})
Steerable Wavelet ๐ญ
add_stimulus_operator(ctx, field, opts)
Generate a multi-scale steerable wavelet stimulus using Simoncelli or Riesz wavelet families. Provides direction-selective, multi-resolution spatial structure with controllable angular bandwidth and orientation.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_steerable_wavelet".
Mathematical Formulation
Each scale contributes a steerable filter response at orientation :
Simoncelli family (raised cosine in log-polar frequency):
Riesz family (order- Riesz transform):
where:
- is the log-radius Gaussian with bandwidth
radial_bandwidth - is the angular envelope raised to
order - is the per-scale wavenumber
The spatial-domain output is the sum over scales:
evaluated at each pixel by direct synthesis (not via FFT).
Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
type |
string |
โ | โ | Must be "stimulus_steerable_wavelet" |
amplitude |
double |
โ | unbounded | Overall amplitude (required) |
wavelet_family |
enum |
"simoncelli" |
see below | Steerable wavelet family |
order |
integer |
1 |
โฅ1 | Steering order (angular harmonic) |
scales |
integer |
4 |
โฅ1 | Number of radial scales |
base_wavenumber |
double |
1.0 |
unbounded | Base radial wavenumber at scale 0 (rad/unit) |
scale_growth |
double |
2.0 |
(0, 8] | Geometric growth factor between scales |
radial_bandwidth |
double |
0.65 |
[0.05, 4] | Log-radius Gaussian bandwidth |
angular_sharpness |
double |
1.0 |
[0.1, 16] | Angular envelope sharpness |
orientation |
double |
0.0 |
unbounded | Steering orientation angle (radians) |
orientation_rate |
double |
0.0 |
unbounded | Angular steering drift rate (rad/s) |
omega |
double |
0.0 |
unbounded | Temporal angular frequency (rad/s) |
phase |
double |
0.0 |
unbounded | Global phase offset across scales (radians) |
time_offset |
double |
0.0 |
unbounded | Additional time shift |
rotation |
double |
0.0 |
unbounded | Complex phase rotation on output (radians) |
scale_by_dt |
boolean |
false |
โ | Scale writes by dt |
use_wavevector |
boolean |
false |
โ | Evaluate in (kx,ky) wavevector frame |
kx, ky |
double |
0.0 |
unbounded | Wavevector components (when use_wavevector = true) |
Wavelet family options: simoncelli, riesz
Plus coordinate mapping parameters.
Examples
-- Basic Simoncelli steerable wavelet
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_steerable_wavelet",
amplitude = 0.7,
wavelet_family = "simoncelli",
scales = 4,
order = 2
})
-- Riesz family with high steering order
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_steerable_wavelet",
amplitude = 0.6,
wavelet_family = "riesz",
order = 3,
scales = 5,
orientation = math.pi / 6
})
-- Slowly rotating steerable wavelet
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_steerable_wavelet",
amplitude = 0.5,
wavelet_family = "simoncelli",
scales = 4,
order = 2,
orientation_rate = 0.2,
angular_sharpness = 2.0
})
-- Narrow-band single-scale Riesz
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_steerable_wavelet",
amplitude = 0.4,
wavelet_family = "riesz",
scales = 1,
base_wavenumber = 1.5,
radial_bandwidth = 0.3,
order = 4
})
Heat Kernel โจ๏ธ
add_stimulus_operator(ctx, field, opts)
Inject a diffusing Gaussian heat kernel whose width grows over time according to the heat equation. This is useful for thermal diffusion demos, broadening pulses, and soft sources that spread as the simulation advances.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_heat_kernel".
Mathematical Formulation
The kernel broadens over time as
and the injected profile is
with optional mass preservation multiplying by .
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_heat_kernel" |
diffusivity |
double |
0.0 |
Heat diffusivity controlling spread rate |
sigma_x |
double |
1.0 |
Initial width along X/local U |
sigma_y |
double |
1.0 |
Initial width along Y/local V |
preserve_mass |
boolean |
false |
Preserve integrated mass as the kernel broadens |
Plus shared coordinate mapping and timing parameters (amplitude, time_offset, rotation, nominal_dt, fixed_clock, scale_by_dt).
Examples
-- Diffusing thermal packet
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_heat_kernel",
amplitude = 0.5,
diffusivity = 0.15,
sigma_x = 8.0
})
-- Mass-preserving anisotropic spread
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_heat_kernel",
amplitude = 0.4,
diffusivity = 0.08,
sigma_x = 4.0,
sigma_y = 12.0,
preserve_mass = true
})
Optical Vortex ๐
add_stimulus_operator(ctx, field, opts)
Generate an optical vortex beam with a phase singularity and topological charge. This is useful for orbital-angular-momentum demos, dark-core beam patterns, and rotational phase structure.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_optical_vortex".
Mathematical Formulation
In a local beam frame,
where is the integer charge, is the normalized radial coordinate set by waist_x and waist_y, and is the local polar angle.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_optical_vortex" |
charge |
integer |
1 |
Topological charge controlling phase winding |
waist_x |
double |
0.75 |
Beam waist along local U |
waist_y |
double |
0.75 |
Beam waist along local V |
center_u, center_v |
double |
0.0 |
Beam center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Beam-center drift velocity |
orientation |
double |
0.0 |
Beam orientation angle |
orientation_rate |
double |
0.0 |
Beam orientation drift rate |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_optical_vortex",
amplitude = 0.6,
charge = 1,
waist_x = 0.8
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_optical_vortex",
amplitude = 0.4,
charge = 2,
orientation = math.pi / 6
})
Airy Beam ๐ชถ
add_stimulus_operator(ctx, field, opts)
Generate a finite-energy separable Airy beam with configurable apodization and carrier tilt. This is useful for self-bending beam demos and accelerating-wave patterns.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_airy_beam".
Mathematical Formulation
The beam uses separable Airy envelopes with finite-energy tapers:
where scale_u/v set and apodization_u/v set .
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_airy_beam" |
scale_u, scale_v |
double |
0.45 |
Airy scaling along the local frame axes |
apodization_u, apodization_v |
double |
0.12 |
Finite-energy taper along each local axis |
center_u, center_v |
double |
0.0 |
Beam center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Beam-center drift velocity |
orientation |
double |
0.0 |
Beam orientation angle |
orientation_rate |
double |
0.0 |
Beam orientation drift rate |
carrier_u, carrier_v |
double |
0.0 |
Carrier tilt applied along the local axes |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_airy_beam",
amplitude = 0.5,
scale_u = 0.4,
apodization_u = 0.12
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_airy_beam",
amplitude = 0.35,
carrier_u = 2.0,
carrier_v = -1.0,
orientation = math.pi / 8
})
Zone Plate ๐ฏ
add_stimulus_operator(ctx, field, opts)
Generate a Fresnel-style zone plate with quadratic radial phase and Gaussian aperture. This is useful for diffraction-inspired rings, focusing masks, and radial chirp patterns.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_zone_plate".
Mathematical Formulation
In the local plate frame,
where is radial_chirp and .
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_zone_plate" |
radial_chirp |
double |
18.0 |
Quadratic radial chirp controlling ring spacing |
scale_u, scale_v |
double |
1.0 |
Radial scaling along the local frame |
aperture_u, aperture_v |
double |
1.6 |
Gaussian aperture width along the local axes |
center_u, center_v |
double |
0.0 |
Plate center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Plate-center drift velocity |
orientation |
double |
0.0 |
Plate orientation angle |
orientation_rate |
double |
0.0 |
Plate orientation drift rate |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_zone_plate",
amplitude = 0.7,
radial_chirp = 24.0,
aperture_u = 1.3
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_zone_plate",
amplitude = 0.5,
scale_u = 0.75,
scale_v = 1.25,
orientation = math.pi / 6
})
Bessel Beam ๐งต
add_stimulus_operator(ctx, field, opts)
Generate an integer-order cylindrical Bessel beam with configurable radial wavenumber. This is useful for non-diffracting beam demos, cylindrical modes, and ringed phase fronts.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_bessel_beam".
Mathematical Formulation
In the local beam frame,
where order sets the integer , radial_wavenumber sets , and is the scaled radial coordinate.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_bessel_beam" |
order |
integer |
0 |
Cylindrical Bessel order |
radial_wavenumber |
double |
8.0 |
Radial wavenumber applied to |
scale_u, scale_v |
double |
1.0 |
Radial scaling along the local frame axes |
center_u, center_v |
double |
0.0 |
Beam center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Beam-center drift velocity |
orientation |
double |
0.0 |
Beam orientation angle |
orientation_rate |
double |
0.0 |
Beam orientation drift rate |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_bessel_beam",
amplitude = 0.5,
order = 0,
radial_wavenumber = 10.0
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_bessel_beam",
amplitude = 0.35,
order = 2,
orientation_rate = 0.1
})
Hermite-Gaussian Beam ๐ฌ
add_stimulus_operator(ctx, field, opts)
Generate separable Hermite-Gaussian transverse modes inside a Gaussian envelope. This is useful for cavity-mode demos, paraxial beam families, and mode-superposition studies.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_hermite_gaussian_beam".
Mathematical Formulation
where mode_u/v set the Hermite indices and waist_u/v set the beam waists.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_hermite_gaussian_beam" |
mode_u, mode_v |
integer |
0 |
Hermite mode indices along the local axes |
waist_u, waist_v |
double |
0.75 |
Beam waist along the local axes |
center_u, center_v |
double |
0.0 |
Beam center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Beam-center drift velocity |
orientation |
double |
0.0 |
Beam orientation angle |
orientation_rate |
double |
0.0 |
Beam orientation drift rate |
carrier_u, carrier_v |
double |
0.0 |
Carrier tilt along the local axes |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_hermite_gaussian_beam",
amplitude = 0.6,
mode_u = 1,
mode_v = 0,
waist_u = 0.75
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_hermite_gaussian_beam",
amplitude = 0.45,
mode_u = 2,
mode_v = 1,
carrier_u = 1.5
})
Traveling Wave Packet ๐ฆ
add_stimulus_operator(ctx, field, opts)
Generate a Gaussian-envelope traveling wave packet with configurable carrier and drift. This is useful for localized transport, dispersive-packet demos, and moving coherent structures.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_traveling_wave_packet".
Mathematical Formulation
The packet envelope is
and the injected field is
with the packet center drifting through the local frame over time.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_traveling_wave_packet" |
sigma_u, sigma_v |
double |
0.75 |
Packet width along the local axes |
center_u, center_v |
double |
0.0 |
Packet center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Packet-center drift velocity |
orientation |
double |
0.0 |
Packet orientation angle |
orientation_rate |
double |
0.0 |
Packet orientation drift rate |
carrier_u, carrier_v |
double |
0.0 |
Carrier wavenumber along the local axes |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_traveling_wave_packet",
amplitude = 0.6,
sigma_u = 0.7,
carrier_u = 3.6,
velocity_u = 0.12
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_traveling_wave_packet",
amplitude = 0.4,
sigma_v = 1.2,
carrier_v = 2.0,
orientation = math.pi / 4
})
Cylindrical Wave Emitter ๐ก
add_stimulus_operator(ctx, field, opts)
Generate a regularized cylindrical wave radiating from a moving point source. This is useful for 2D wave-emitter demos, soft singular sources, and outgoing radial phase fronts.
Method Signature
add_stimulus_operator(ctx, field, [options]) -> operator
Returns: Operator handle (userdata)
Note: Requires type = "stimulus_cylindrical_wave_emitter".
Mathematical Formulation
With softened radius
the emitted field is
where softening_radius supplies , attenuation supplies , and radial_wavenumber supplies .
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
string |
โ | Must be "stimulus_cylindrical_wave_emitter" |
radial_wavenumber |
double |
8.0 |
Radial wavenumber of the outgoing phase front |
attenuation |
double |
0.0 |
Exponential attenuation factor |
softening_radius |
double |
0.1 |
Core radius used to regularize the source singularity |
center_u, center_v |
double |
0.0 |
Emitter center in the local frame |
velocity_u, velocity_v |
double |
0.0 |
Emitter-center drift velocity |
Plus shared coordinate mapping and timing parameters (amplitude, omega, phase, time_offset, rotation, scale_by_dt).
Examples
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_cylindrical_wave_emitter",
amplitude = 0.7,
radial_wavenumber = 9.0,
attenuation = 0.2
})
ooc.add_stimulus_operator(ctx, field, {
type = "stimulus_cylindrical_wave_emitter",
amplitude = 0.4,
softening_radius = 0.2,
velocity_u = 0.05
})