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

Chladni nodal-line stimulus for vibrating rectangular plate modes. More...

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

Go to the source code of this file.

Classes

struct  SimStimulusChladniConfig
 Configuration for a Chladni nodal-line stimulus on a rectangular plate. More...
 

Typedefs

typedef struct SimStimulusChladniConfig SimStimulusChladniConfig
 Configuration for a Chladni nodal-line stimulus on a rectangular plate.
 

Functions

SimResult sim_add_stimulus_chladni_operator (struct SimContext *context, const SimStimulusChladniConfig *config, size_t *out_index)
 Register a Chladni nodal-line stimulus operator.
 
SimResult sim_stimulus_chladni_config (struct SimContext *context, size_t operator_index, SimStimulusChladniConfig *out_config)
 Copy the current Chladni configuration from a registered operator.
 
SimResult sim_stimulus_chladni_update (struct SimContext *context, size_t operator_index, const SimStimulusChladniConfig *config)
 Replace or renormalize a registered Chladni stimulus configuration.
 

Detailed Description

Chladni nodal-line stimulus for vibrating rectangular plate modes.

Builds a Gaussian band around the nodal set of an antisymmetrized rectangular-plate mode pair: base(u,v) = cos(m*pi*u/Lx) cos(n*pi*v/Ly) - mix * cos(n*pi*u/Lx) cos(m*pi*v/Ly) and writes A * exp(-base(u,v)^2 / (2*sigma^2)) * exp(i * (-omega*t + phi)).

Real fields receive the real component of the pattern; complex fields receive the full complex pattern with an additional global rotation.

Function Documentation

◆ sim_add_stimulus_chladni_operator()

SimResult sim_add_stimulus_chladni_operator ( struct SimContext context,
const SimStimulusChladniConfig config,
size_t *  out_index 
)

Register a Chladni nodal-line stimulus operator.

The implementation copies and normalizes config, then registers a split operator that writes the modal nodal-band pattern into the configured target field.

Parameters
contextSimulation context that will own the operator.
configOptional Chladni 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, or split-operator registration.

◆ sim_stimulus_chladni_config()

SimResult sim_stimulus_chladni_config ( struct SimContext context,
size_t  operator_index,
SimStimulusChladniConfig out_config 
)

Copy the current Chladni configuration from a registered operator.

Parameters
contextSimulation context containing the operator.
operator_indexIndex returned by sim_add_stimulus_chladni_operator().
[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_chladni_update()

SimResult sim_stimulus_chladni_update ( struct SimContext context,
size_t  operator_index,
const SimStimulusChladniConfig config 
)

Replace or renormalize a registered Chladni stimulus configuration.

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

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