5#ifndef OAKFIELD_SIM_FLUX_LENS_H
6#define OAKFIELD_SIM_FLUX_LENS_H
98void flux_lens_set_field_index(
FluxLensState *lens,
size_t field_index);
100void flux_lens_shift_center(
FluxLensState *lens,
double shift);
101void flux_lens_set_band(
FluxLensState *lens,
double band_lo,
double band_hi);
111void flux_lens_update_targets_from_marks(
FluxLensState *lens);
116void flux_lens_update(
struct SimContext *context);
118double flux_total_work(
const double *S,
size_t length);
119double flux_total_energy(
const double complex *u_hat,
size_t length);
Reusable 1D and 2D complex FFT plans for operator implementations.
Multidimensional contiguous field abstraction with configurable layout.
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Reusable 1D complex FFT plan for arbitrary nonzero transform lengths.
Definition fft_plan.h:49
Persistent flux-lens band state and analysis buffers for a simulation context.
Definition sim_flux_lens.h:43
size_t bucket_count
Definition sim_flux_lens.h:70
double min_bandwidth
Definition sim_flux_lens.h:50
bool force_update
Definition sim_flux_lens.h:46
double pi_max
Definition sim_flux_lens.h:72
bool band_ready
Definition sim_flux_lens.h:47
size_t scratch_bytes
Definition sim_flux_lens.h:75
double * bucket_S
Definition sim_flux_lens.h:67
size_t last_update_step
Definition sim_flux_lens.h:52
double band_max_component
Definition sim_flux_lens.h:57
double * bucket_absS
Definition sim_flux_lens.h:68
double band_max_magnitude
Definition sim_flux_lens.h:58
FluxMarks marks
Definition sim_flux_lens.h:74
size_t update_period
Definition sim_flux_lens.h:51
double band_lo
Definition sim_flux_lens.h:53
bool enabled
Definition sim_flux_lens.h:44
double target_band_lo
Definition sim_flux_lens.h:55
size_t field_index
Definition sim_flux_lens.h:48
double smoothing
Definition sim_flux_lens.h:49
double band_hi
Definition sim_flux_lens.h:54
double complex * band_spec
Definition sim_flux_lens.h:60
double target_band_hi
Definition sim_flux_lens.h:56
size_t bucket_capacity
Definition sim_flux_lens.h:69
double pi_min
Definition sim_flux_lens.h:71
size_t band_capacity
Definition sim_flux_lens.h:62
double * S
Definition sim_flux_lens.h:63
double * bucket_pi
Definition sim_flux_lens.h:66
double max_k
Definition sim_flux_lens.h:59
double * Pi
Definition sim_flux_lens.h:64
double complex * band_phys
Definition sim_flux_lens.h:61
double absS_total
Definition sim_flux_lens.h:73
bool locked
Definition sim_flux_lens.h:45
double * bucket_k
Definition sim_flux_lens.h:65
Scratch workspace used while computing and reconstructing flux-lens bands.
Definition sim_flux_lens.h:84
double * tmp_real1
Definition sim_flux_lens.h:87
double complex * tmp_spec1
Definition sim_flux_lens.h:85
double complex * tmp_phys1
Definition sim_flux_lens.h:86
FFTPlan plan
Definition sim_flux_lens.h:89
bool use_dealias
Definition sim_flux_lens.h:88
size_t capacity
Definition sim_flux_lens.h:90
size_t scratch_bytes
Definition sim_flux_lens.h:92
bool plan_ready
Definition sim_flux_lens.h:91
Spectral flux landmarks computed from the latest flux-lens analysis.
Definition sim_flux_lens.h:25
double kc
Definition sim_flux_lens.h:27
double pi_at_kc
Definition sim_flux_lens.h:30
double pi_max
Definition sim_flux_lens.h:33
double k50
Definition sim_flux_lens.h:28
double k90
Definition sim_flux_lens.h:29
double kmax
Definition sim_flux_lens.h:34
double pi_min
Definition sim_flux_lens.h:32
double total_abs_work
Definition sim_flux_lens.h:31
bool valid
Definition sim_flux_lens.h:26
Simulation runtime state.
Definition sim_context.h:70
Owning multidimensional field.
Definition field.h:157