Skip to content
Oakfield Operator Calculus Function Reference Site

Diffusion Operators

sim_add_linear_dissipative_operator(ctx, field, opts)

Spectral fractional Laplacian. Parameters:

  • viscosity (required, ≥0): diffusion coefficient.
  • alpha (0..2, default 2): fractional Laplacian power.
  • spacing (>0, default 1.0): grid spacing used to scale |k|.

Example:

sim.sim_add_linear_dissipative_operator(ctx, field, {
viscosity = 0.5,
alpha = 1.3,
spacing = 0.05
})
sim.sim_add_linear_dissipative_operator(ctx, field, {
viscosity = 0.0
}) -- no-op/pass-through

sim_add_linear_spectral_fusion_operator(ctx, field, opts)

Fuses dissipation, dispersion, and phase shift in one FFT pair. Parameters:

  • viscosity (≥0): dissipation strength.
  • alpha (0..2, default 2): dissipation order.
  • dissipation_spacing (>0, default 1): scales |k| for dissipation.
  • dispersion_coefficient (default 0): dispersion gain.
  • dispersion_order (default 1): power on |k|.
  • dispersion_reference_k (≥0, default 0): carrier offset.
  • dispersion_spacing (>0, default 1): spacing for dispersion term.
  • phase_rate (default 0): global phase rotation (rad/s).

Example:

sim.sim_add_linear_spectral_fusion_operator(ctx, field, {
viscosity = 0.2,
alpha = 2.0,
dispersion_coefficient = 1.0,
dispersion_order = 2.0,
phase_rate = 0.0
})
sim.sim_add_linear_spectral_fusion_operator(ctx, field, {
dispersion_coefficient = 0.5,
dispersion_order = 1.0
})

sim_add_dispersion_operator(ctx, field, opts)

Pure spectral phase operator. Parameters:

  • coefficient (required, -10..10): phase gain.
  • order (0..4, default 2): |k| power.
  • spacing (>0, default 1): grid spacing scaling.
  • reference_k (≥0, default 0): carrier wavenumber offset.

Example:

sim.sim_add_dispersion_operator(ctx, field, {
coefficient = 1.0,
order = 2.0
})
sim.sim_add_dispersion_operator(ctx, field, {
coefficient = -0.5,
order = 1.0,
reference_k = 0.25
})

sim_add_fractional_memory_operator(ctx, field, opts)

Long-range fractional derivative accumulator.

  • order (required, 0<order≤1): fractional power.
  • gain (default 0.5): scale applied to response.
  • memory_steps (integer≥1): history length.

Example:

sim.sim_add_fractional_memory_operator(ctx, field, {
order = 0.6,
gain = 0.25,
memory_steps = 128
})
sim.sim_add_fractional_memory_operator(ctx, field, {
order = 1.0
}) -- first-order lag

Read/modify an existing fractional-memory operator

Section titled “Read/modify an existing fractional-memory operator”
  • sim_fractional_memory_config(ctx, op_index) -> table|nil returns { field_index, order, gain, memory_steps }.
  • sim_fractional_memory_update(ctx, op_index, opts) -> true updates the live operator; only provided fields are touched.
local cfg = sim.sim_fractional_memory_config(ctx, op_index)
if cfg then
sim.log("fracmem: field=%d order=%.2f gain=%.3f steps=%d",
cfg.field_index, cfg.order, cfg.gain, cfg.memory_steps)
end
-- Increase memory and gain
sim.sim_fractional_memory_update(ctx, op_index, {
memory_steps = 256,
gain = 0.35,
})