Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
sim_integrator_state.h
Go to the documentation of this file.
1
5#ifndef OAKFIELD_SIM_INTEGRATOR_STATE_H
6#define OAKFIELD_SIM_INTEGRATOR_STATE_H
7
8#include <stdbool.h>
9#include <stddef.h>
10
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
29
37
44
52
65 struct Integrator *const *integrators, size_t count);
66
74
82
90
99 size_t *out_count);
100
108
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif /* OAKFIELD_SIM_INTEGRATOR_STATE_H */
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