Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
gradient.h
Go to the documentation of this file.
1
5#ifndef OAKFIELD_GRADIENT_H
6#define OAKFIELD_GRADIENT_H
7
9
10#include <stdbool.h>
11#include <stddef.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17struct SimContext;
18
19#define SIM_GRADIENT_AXIS_AUTO ((size_t)SIZE_MAX)
20
32
49
60 const SimGradientOperatorConfig *config, size_t *out_index);
61
72SimResult sim_gradient_config(struct SimContext *context, size_t operator_index,
73 SimGradientOperatorConfig *out_config);
74
87SimResult sim_gradient_update(struct SimContext *context, size_t operator_index,
88 const SimGradientOperatorConfig *config);
89
90#ifdef __cplusplus
91}
92#endif
93
94#endif /* OAKFIELD_GRADIENT_H */
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
SimGradientStencil
Finite-difference stencils available for gradient derivatives.
Definition gradient.h:24
@ SIM_GRADIENT_STENCIL_FORWARD_1
Definition gradient.h:27
@ SIM_GRADIENT_STENCIL_CENTRAL_4
Definition gradient.h:26
@ SIM_GRADIENT_STENCIL_BACKWARD_1
Definition gradient.h:28
@ SIM_GRADIENT_STENCIL_CENTRAL_2
Definition gradient.h:25
@ SIM_GRADIENT_STENCIL_FORWARD_2
Definition gradient.h:29
@ SIM_GRADIENT_STENCIL_BACKWARD_2
Definition gradient.h:30
SimResult sim_gradient_update(struct SimContext *context, size_t operator_index, const SimGradientOperatorConfig *config)
Replace the configuration of a registered gradient operator.
SimResult sim_add_gradient_operator(struct SimContext *context, const SimGradientOperatorConfig *config, size_t *out_index)
Register a finite-difference gradient operator.
SimResult sim_gradient_config(struct SimContext *context, size_t operator_index, SimGradientOperatorConfig *out_config)
Copy the current gradient configuration from a registered operator.
SimIRBoundaryPolicy
Boundary handling policy for differential operators.
Definition kernel_ir.h:82
Declarative complex-first operator splitting (substep expansion at plan time).
Simulation runtime state.
Definition sim_context.h:70
Configuration for writing finite-difference gradient components.
Definition gradient.h:36
size_t axis_y
Definition gradient.h:43
double spacing_x
Definition gradient.h:40
bool scale_by_dt
Definition gradient.h:47
double spacing_y
Definition gradient.h:41
SimGradientStencil stencil
Definition gradient.h:44
bool accumulate
Definition gradient.h:46
SimIRBoundaryPolicy boundary
Definition gradient.h:45
size_t output_field_x
Definition gradient.h:38
size_t input_field
Definition gradient.h:37
size_t output_field_y
Definition gradient.h:39
size_t axis_x
Definition gradient.h:42