Physics Examples
GUI Examples
Section titled “GUI Examples”1) Travelling wave packet
Section titled “1) Travelling wave packet”Models a travelling Gaussian wave packet under dispersion .
local sim = require("libsimcore")local dt = 0.025local N = 768local ctx = sim.sim_create()
sim.sim_set_timestep(ctx, dt)sim.sim_set_visual_mode(ctx, "polar")
local field = sim.sim_add_field(ctx, {N}, { type = "complex_double", fill = {0, 0}})
sim.sim_add_stimulus_operator(ctx, field, { type = "stimulus_gaussian_travel", amplitude = 0.25, center = 6.0 * math.pi, velocity = 1, sigma = 1, omega = 1, spacing = 0.1})
sim.sim_add_dispersion_operator(ctx, field, { coefficient = 1.5, order = 2, spacing = 0.1})
local integrator = sim.sim_create_context_integrator(ctx, "euler", { adaptive = false, initial_dt = dt})
sim.sim_set_integrator(ctx, integrator)
return ctxCLI Examples
Section titled “CLI Examples”1) Heat diffusion on a line
Section titled “1) Heat diffusion on a line”Models 1D diffusion with a point hot spot so the Crank–Nicolson step damps the peak over time.
local temp = sim.sim_add_field(ctx, {256}, { fill = 0.0})
temp:values()[128] = 1.0 -- hot spot
sim.sim_add_linear_dissipative_operator(ctx, temp, { viscosity = 0.5, alpha = 2.0, spacing = 0.01})
local integrator = sim.sim_create_context_integrator(ctx, "crank_nicolson", { initial_dt = 0.01})
sim.sim_set_integrator(ctx, integrator)3) Thermostat energy clamp
Section titled “3) Thermostat energy clamp”Drives the energy toward with a soft gain, acting like a discrete feedback loop .
local state = sim.sim_add_field(ctx, {256}, { type = "complex_double"})
sim.sim_add_thermostat_operator(ctx, state, { mode = "soft_lambda", E_target = 1.5, lambda_soft_gain = 0.1})
sim.sim_add_stimulus_operator(ctx, state, { type = "stimulus_sine", amplitude = 0.5, wavenumber = 1.0, omega = 0.2})