5#ifndef OAKFIELD_SIM_INTEGRATOR_STATE_H
6#define OAKFIELD_SIM_INTEGRATOR_STATE_H
65 struct Integrator *
const *integrators,
size_t count);
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Runtime selection utilities for libsimintegrators.
struct Integrator * sim_integrator_state_stepping(const SimIntegratorState *state)
Retrieve the integrator currently executing a step, if any.
const IntegratorRegistry * sim_integrator_state_registry_const(const SimIntegratorState *state)
Access the underlying registry (const).
void sim_integrator_state_set_stepping(SimIntegratorState *state, struct Integrator *integrator)
Mark an integrator as the one currently stepping.
struct Integrator * sim_integrator_state_active(const SimIntegratorState *state)
Retrieve the active integrator pointer.
SimResult sim_integrator_state_init(SimIntegratorState *state)
Initialize integrator state and register built-in factories.
const struct Integrator *const * sim_integrator_state_sequence(const SimIntegratorState *state, size_t *out_count)
Retrieve the optional integrator sequence.
void sim_integrator_state_set_active(SimIntegratorState *state, struct Integrator *integrator)
Assign the active integrator pointer.
void sim_integrator_state_destroy(SimIntegratorState *state)
Destroy integrator state and release registry storage.
SimResult sim_integrator_state_set_sequence(SimIntegratorState *state, struct Integrator *const *integrators, size_t count)
Assign an optional ordered integrator sequence.
IntegratorRegistry * sim_integrator_state_registry(SimIntegratorState *state)
Access the underlying registry.
Registry container for integrator factories.
Definition integrator_registry.h:46
Integrator instance shared across schemes.
Definition integrator.h:125
Integrator registry container paired with active execution pointers.
Definition sim_integrator_state.h:20
IntegratorRegistry registry
Definition sim_integrator_state.h:21
size_t sequence_count
Definition sim_integrator_state.h:25
struct Integrator * active
Definition sim_integrator_state.h:22
struct Integrator * stepping
Definition sim_integrator_state.h:23
size_t sequence_capacity
Definition sim_integrator_state.h:26
struct Integrator ** sequence
Definition sim_integrator_state.h:24
bool registry_ready
Definition sim_integrator_state.h:27