Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
linear_spectral_fusion.h
Go to the documentation of this file.
1
5#ifndef OAKFIELD_LINEAR_SPECTRAL_FUSION_H
6#define OAKFIELD_LINEAR_SPECTRAL_FUSION_H
7
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14struct SimContext;
15
20 size_t field_index;
22 /* Dissipation: exp(dt * lambda(k)), lambda(k) = -viscosity * |k|^alpha. */
23 double viscosity;
24 double alpha;
27 /* Dispersion: exp(i * dt * omega(k)), omega(k) = coefficient * | |k| - k0 |^order.
28 * Real fields use the projected real multiplier cos(dt * omega(k)).
29 */
35 /* Global phase: exp(i * dt * phase_rate). Real fields use cos(dt * phase_rate). */
36 double phase_rate;
38
53 size_t *out_index);
54
65SimResult sim_linear_spectral_fusion_config(struct SimContext *context, size_t operator_index,
67
82SimResult sim_linear_spectral_fusion_update(struct SimContext *context, size_t operator_index,
84
85#ifdef __cplusplus
86}
87#endif
88
89#endif /* OAKFIELD_LINEAR_SPECTRAL_FUSION_H */
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
SimResult sim_linear_spectral_fusion_config(struct SimContext *context, size_t operator_index, LinearSpectralFusionOperatorConfig *out_config)
Copy the current fused spectral configuration from a registered operator.
SimResult sim_linear_spectral_fusion_update(struct SimContext *context, size_t operator_index, const LinearSpectralFusionOperatorConfig *config)
Replace the non-target parameters of a fused spectral operator.
SimResult sim_add_linear_spectral_fusion_operator(struct SimContext *context, const LinearSpectralFusionOperatorConfig *config, size_t *out_index)
Register a fused linear spectral operator.
Declarative complex-first operator splitting (substep expansion at plan time).
Configuration for the fused spectral dissipation, dispersion, and phase operator.
Definition linear_spectral_fusion.h:19
double dispersion_order
Definition linear_spectral_fusion.h:31
double dispersion_spacing
Definition linear_spectral_fusion.h:33
double dispersion_reference_k
Definition linear_spectral_fusion.h:32
double dispersion_coefficient
Definition linear_spectral_fusion.h:30
size_t field_index
Definition linear_spectral_fusion.h:20
double viscosity
Definition linear_spectral_fusion.h:23
double phase_rate
Definition linear_spectral_fusion.h:36
double dissipation_spacing
Definition linear_spectral_fusion.h:25
double alpha
Definition linear_spectral_fusion.h:24
Simulation runtime state.
Definition sim_context.h:70