Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
spectral_lines.h
Go to the documentation of this file.
1
9#ifndef OAKFIELD_STIMULUS_SPECTRAL_LINES_H
10#define OAKFIELD_STIMULUS_SPECTRAL_LINES_H
11
12#include "coords.h"
14
15#include <stdbool.h>
16#include <stddef.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22struct SimContext;
23
32
42
69
84 size_t *out_index);
85
96SimResult sim_stimulus_spectral_lines_config(struct SimContext *context, size_t operator_index,
98
112SimResult sim_stimulus_spectral_lines_update(struct SimContext *context, size_t operator_index,
113 const SimStimulusSpectralLinesConfig *config);
114
133 size_t operator_index, unsigned int q,
134 const double *chi_re, const double *chi_im,
135 bool zero_non_units);
136
137#ifdef __cplusplus
138}
139#endif
140
141#endif /* OAKFIELD_STIMULUS_SPECTRAL_LINES_H */
Shared spatial coordinate helpers for stimulus operators.
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Declarative complex-first operator splitting (substep expansion at plan time).
SimResult sim_stimulus_spectral_lines_set_twist_table(struct SimContext *context, size_t operator_index, unsigned int q, const double *chi_re, const double *chi_im, bool zero_non_units)
Install an explicit Dirichlet-style twist table on a spectral-lines operator.
SimStimulusSpectralLinesTwistKind
Harmonic twist strategy for spectral-line sums.
Definition spectral_lines.h:27
@ SIM_SPECTRAL_LINES_TWIST_ALTERNATING
Definition spectral_lines.h:29
@ SIM_SPECTRAL_LINES_TWIST_NONE
Definition spectral_lines.h:28
@ SIM_SPECTRAL_LINES_TWIST_DIRICHLET
Definition spectral_lines.h:30
SimResult sim_stimulus_spectral_lines_update(struct SimContext *context, size_t operator_index, const SimStimulusSpectralLinesConfig *config)
Replace or renormalize a registered spectral-lines configuration.
SimResult sim_stimulus_spectral_lines_config(struct SimContext *context, size_t operator_index, SimStimulusSpectralLinesConfig *out_config)
Copy the current spectral-lines configuration from a registered operator.
SimResult sim_add_stimulus_spectral_lines_operator(struct SimContext *context, const SimStimulusSpectralLinesConfig *config, size_t *out_index)
Register a spectral-line harmonic stimulus operator.
SimStimulusSpectralLinesTwistPreset
Preset table family used for Dirichlet-style spectral-line twists.
Definition spectral_lines.h:36
@ SIM_SPECTRAL_LINES_TWIST_PRESET_TABLE
Definition spectral_lines.h:40
@ SIM_SPECTRAL_LINES_TWIST_PRESET_PRINCIPAL
Definition spectral_lines.h:37
@ SIM_SPECTRAL_LINES_TWIST_PRESET_QUADRATIC
Definition spectral_lines.h:39
@ SIM_SPECTRAL_LINES_TWIST_PRESET_CHI4
Definition spectral_lines.h:38
Simulation runtime state.
Definition sim_context.h:70
Shared coordinate mapping configuration used by stimulus operators.
Definition coords.h:53
Configuration for harmonic spectral-line stimulus fields.
Definition spectral_lines.h:46
SimStimulusSpectralLinesTwistKind twist_kind
Definition spectral_lines.h:59
bool fixed_clock
Definition spectral_lines.h:66
size_t field_index
Definition spectral_lines.h:47
bool use_wavevector
Definition spectral_lines.h:65
double kx
Definition spectral_lines.h:50
bool twist_zero_non_units
Definition spectral_lines.h:63
unsigned int twist_k
Definition spectral_lines.h:61
unsigned int twist_q
Definition spectral_lines.h:60
double omega
Definition spectral_lines.h:52
SimStimulusSpectralLinesTwistPreset twist_preset
Definition spectral_lines.h:62
double harmonic_power
Definition spectral_lines.h:58
unsigned int harmonic_count
Definition spectral_lines.h:57
bool twist_table_is_complex
Definition spectral_lines.h:64
double ky
Definition spectral_lines.h:51
double wavenumber
Definition spectral_lines.h:49
double phase
Definition spectral_lines.h:53
double amplitude
Definition spectral_lines.h:48
double time_offset
Definition spectral_lines.h:55
bool scale_by_dt
Definition spectral_lines.h:67
double nominal_dt
Definition spectral_lines.h:56
SimStimulusCoordConfig coord
Definition spectral_lines.h:54