Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
sinusoidal.h File Reference

Sinusoidal stimulus operators: traveling, standing, chirped, and Gaussian-envelope. More...

#include "coords.h"
#include "oakfield/operator_split.h"
#include <stdbool.h>
#include <stddef.h>
Include dependency graph for sinusoidal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SimStimulusSinusoidalConfig
 Shared configuration for sinusoidal stimulus variants. More...
 
struct  SimStimulusSinusoidalState
 Internal state for sinusoidal stimulus operators. More...
 

Typedefs

typedef struct SimStimulusSinusoidalConfig SimStimulusSinusoidalConfig
 Shared configuration for sinusoidal stimulus variants.
 
typedef enum SimStimulusSinusoidalMode SimStimulusSinusoidalMode
 Sinusoidal stimulus operation mode.
 
typedef struct SimStimulusSinusoidalState SimStimulusSinusoidalState
 Internal state for sinusoidal stimulus operators.
 

Enumerations

enum  SimStimulusSinusoidalMode { SIM_STIMULUS_SINUSOIDAL_SINE = 0 , SIM_STIMULUS_SINUSOIDAL_STANDING , SIM_STIMULUS_SINUSOIDAL_CHIRP }
 Sinusoidal stimulus operation mode. More...
 

Functions

SimResult sim_add_stimulus_sine_operator (struct SimContext *context, const SimStimulusSinusoidalConfig *config, size_t *out_index)
 Register a traveling-wave sinusoidal stimulus operator.
 
SimResult sim_add_stimulus_standing_operator (struct SimContext *context, const SimStimulusSinusoidalConfig *config, size_t *out_index)
 Register a standing-wave sinusoidal stimulus operator.
 
SimResult sim_add_stimulus_chirp_operator (struct SimContext *context, const SimStimulusSinusoidalConfig *config, size_t *out_index)
 Register a chirped sinusoidal stimulus operator.
 
SimResult sim_stimulus_sinusoidal_config (struct SimContext *context, size_t operator_index, SimStimulusSinusoidalConfig *out_config)
 Copy the current sinusoidal configuration from a registered operator.
 
SimResult sim_stimulus_sinusoidal_update (struct SimContext *context, size_t operator_index, const SimStimulusSinusoidalConfig *config)
 Replace or renormalize a registered sinusoidal stimulus configuration.
 

Detailed Description

Sinusoidal stimulus operators: traveling, standing, chirped, and Gaussian-envelope.

Complex fields are driven by writing real/imag components with optional rotation.

Enumeration Type Documentation

◆ SimStimulusSinusoidalMode

Sinusoidal stimulus operation mode.

Enumerator
SIM_STIMULUS_SINUSOIDAL_SINE 

Traveling sine wave mode.

SIM_STIMULUS_SINUSOIDAL_STANDING 

Standing-wave mode.

SIM_STIMULUS_SINUSOIDAL_CHIRP 

Chirped sine wave mode.

Function Documentation

◆ sim_add_stimulus_chirp_operator()

SimResult sim_add_stimulus_chirp_operator ( struct SimContext context,
const SimStimulusSinusoidalConfig config,
size_t *  out_index 
)

Register a chirped sinusoidal stimulus operator.

The implementation copies and normalizes config, selects the chirp mode, and registers the operator on the configured target field.

Parameters
contextSimulation context that will own the operator.
configOptional sinusoidal configuration; NULL selects normalized defaults.
[out]out_indexOptional destination for the registered operator index.
Returns
SIM_RESULT_OK on success, or an error code from validation, allocation, buffer setup, or split-operator registration.

◆ sim_add_stimulus_sine_operator()

SimResult sim_add_stimulus_sine_operator ( struct SimContext context,
const SimStimulusSinusoidalConfig config,
size_t *  out_index 
)

Register a traveling-wave sinusoidal stimulus operator.

The implementation copies and normalizes config, selects the sine mode, and registers the operator on the configured target field.

Parameters
contextSimulation context that will own the operator.
configOptional sinusoidal configuration; NULL selects normalized defaults.
[out]out_indexOptional destination for the registered operator index.
Returns
SIM_RESULT_OK on success, or an error code from validation, allocation, buffer setup, or split-operator registration.

◆ sim_add_stimulus_standing_operator()

SimResult sim_add_stimulus_standing_operator ( struct SimContext context,
const SimStimulusSinusoidalConfig config,
size_t *  out_index 
)

Register a standing-wave sinusoidal stimulus operator.

The implementation copies and normalizes config, selects the standing-wave mode, and registers the operator on the configured target field.

Parameters
contextSimulation context that will own the operator.
configOptional sinusoidal configuration; NULL selects normalized defaults.
[out]out_indexOptional destination for the registered operator index.
Returns
SIM_RESULT_OK on success, or an error code from validation, allocation, buffer setup, or split-operator registration.

◆ sim_stimulus_sinusoidal_config()

SimResult sim_stimulus_sinusoidal_config ( struct SimContext context,
size_t  operator_index,
SimStimulusSinusoidalConfig out_config 
)

Copy the current sinusoidal configuration from a registered operator.

This accessor is shared by the sine, standing-wave, and chirp variants.

Parameters
contextSimulation context containing the operator.
operator_indexIndex returned by a sinusoidal registration call.
[out]out_configReceives the operator's normalized configuration.
Returns
SIM_RESULT_OK on success, SIM_RESULT_INVALID_ARGUMENT for NULL pointers, SIM_RESULT_NOT_FOUND for a missing operator, or SIM_RESULT_INVALID_STATE when the operator has no stimulus state.

◆ sim_stimulus_sinusoidal_update()

SimResult sim_stimulus_sinusoidal_update ( struct SimContext context,
size_t  operator_index,
const SimStimulusSinusoidalConfig config 
)

Replace or renormalize a registered sinusoidal stimulus configuration.

Passing NULL for config keeps the existing configuration and reapplies normalization. A successful update refreshes waveform state and invalidates the scheduler plan.

Parameters
contextSimulation context containing the operator.
operator_indexIndex of the sinusoidal operator to update.
configOptional replacement configuration.
Returns
SIM_RESULT_OK on success, or an error code if lookup, buffer setup, or state validation fails.