Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
integrator_registry.h
Go to the documentation of this file.
1
10#ifndef LIBSIMINTEGRATORS_INTEGRATOR_REGISTRY_H
11#define LIBSIMINTEGRATORS_INTEGRATOR_REGISTRY_H
12
13#include "integrator.h"
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
28
39
51
60
67
78 IntegratorCreateFn create_fn);
79
88
100 const IntegratorConfig *config, Integrator *out);
101
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif /* LIBSIMINTEGRATORS_INTEGRATOR_REGISTRY_H */
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Base definitions for time-integration schemes in libsimintegrators.
SimResult integrator_registry_create(const IntegratorRegistry *registry, const char *name, const IntegratorConfig *config, Integrator *out)
Create an integrator from a registered factory.
SimResult integrator_registry_register(IntegratorRegistry *registry, const char *name, IntegratorCreateFn create_fn)
Add or replace a factory under a registry name.
SimResult(* IntegratorCreateFn)(const IntegratorConfig *config, Integrator *out)
Factory function creating an integrator instance.
Definition integrator_registry.h:27
IntegratorCreateFn integrator_registry_lookup(const IntegratorRegistry *registry, const char *name)
Look up a factory by registry name.
void integrator_registry_destroy(IntegratorRegistry *registry)
Release registry storage.
SimResult integrator_registry_init(IntegratorRegistry *registry)
Initialize a registry and register built-in integrator factories.
SimResult integrator_registry_register_builtin(IntegratorRegistry *registry)
Register the built-in integrator factory set.
Configuration parameters for integrator construction.
Definition integrator.h:97
Entry stored by the registry.
Definition integrator_registry.h:35
char name[32]
Definition integrator_registry.h:36
IntegratorCreateFn create
Definition integrator_registry.h:37
Registry container for integrator factories.
Definition integrator_registry.h:46
IntegratorRegistryEntry * entries
Definition integrator_registry.h:47
size_t capacity
Definition integrator_registry.h:49
size_t count
Definition integrator_registry.h:48
Integrator instance shared across schemes.
Definition integrator.h:125