Skip to content

Commit

Permalink
updated readme
Browse files Browse the repository at this point in the history
  • Loading branch information
jrenaud90 committed Jul 25, 2024
1 parent 45b47e5 commit 9ca4d1b
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,25 +327,26 @@ There is a lot more you can do to interface with CyRK's C++ backend and fully op

```cython
cdef shared_ptr[CySolverResult] cysolve_ivp(
DiffeqFuncType diffeq_ptr, # Differential equation defined as a cython function
double* t_span_ptr, # Pointer to array (size 2) of floats defining the start and stop points for integration
double* y0_ptr, # Pointer to array defining initial y0 conditions.
unsigned int num_y, # Size of y0_ptr array.
unsigned int method = 1, # Integration method. Current options: 0 == RK23, 1 == RK45, 2 == DOP853
double rtol = 1.0e-3, # Relative tolerance used to control integration error.
double atol = 1.0e-6, # Absolute tolerance (near 0) used to control integration error.
double* args_ptr = NULL, # Pointer to array of additional arguments passed to the diffeq. Currently cysolve_ivp only supports doubles as additional arguments.
unsigned int num_extra = 0, # Number of extra outputs you want to capture during integration. There is a performance hit if this is used in conjunction with t_eval or dense_output.
size_t max_num_steps = 0, # Maximum number of steps allowed. If exceeded then integration will fail. 0 (the default) turns this off.
size_t max_ram_MB = 2000, # Maximum amount of system memory the integrator is allowed to use. If this is exceeded then integration will fail.
bint dense_output = False, # If True, then dense interpolators will be saved to the solution. This allows a user to call solution as if a function (in time).
double* t_eval = NULL, # Pointer to an array of time steps at which to save data. If not provided then all adaptive time steps will be saved. There is a slight performance hit using this feature.
size_t len_t_eval = 0, # Size of t_eval.
double* rtols_ptr = NULL, # Overrides rtol if provided. Pointer to array of floats of rtols if you'd like a different rtol for each y.
double* atols_ptr = NULL, # Overrides atol if provided. Pointer to array of floats of atols if you'd like a different atol for each y.
double max_step = MAX_STEP, # Maximum allowed step size.
double first_step = 0.0 # Initial step size. If set to 0.0 then CyRK will guess a good step size.
size_t expected_size = 0, # Expected size of the solution. There is a slight performance improvement if selecting the the exact or slightly more time steps than the adaptive stepper will require (if you happen to know this ahead of time).
DiffeqFuncType diffeq_ptr, # Differential equation defined as a cython function
double* t_span_ptr, # Pointer to array (size 2) of floats defining the start and stop points for integration
double* y0_ptr, # Pointer to array defining initial y0 conditions.
unsigned int num_y, # Size of y0_ptr array.
unsigned int method = 1, # Integration method. Current options: 0 == RK23, 1 == RK45, 2 == DOP853
double rtol = 1.0e-3, # Relative tolerance used to control integration error.
double atol = 1.0e-6, # Absolute tolerance (near 0) used to control integration error.
void* args_ptr = NULL, # Pointer to array of additional arguments passed to the diffeq. See "Advanced CySolver.md" for more details.
unsigned int num_extra = 0, # Number of extra outputs you want to capture during integration. There is a performance hit if this is used in conjunction with t_eval or dense_output.
size_t max_num_steps = 0, # Maximum number of steps allowed. If exceeded then integration will fail. 0 (the default) turns this off.
size_t max_ram_MB = 2000, # Maximum amount of system memory the integrator is allowed to use. If this is exceeded then integration will fail.
bint dense_output = False, # If True, then dense interpolators will be saved to the solution. This allows a user to call solution as if a function (in time).
double* t_eval = NULL, # Pointer to an array of time steps at which to save data. If not provided then all adaptive time steps will be saved. There is a slight performance hit using this feature.
size_t len_t_eval = 0, # Size of t_eval.
PreEvalFunc pre_eval_func = NULL # Optional additional function that is called within `diffeq_ptr` using current `t` and `y`. See "Advanced CySolver.md" for more details.
double* rtols_ptr = NULL, # Overrides rtol if provided. Pointer to array of floats of rtols if you'd like a different rtol for each y.
double* atols_ptr = NULL, # Overrides atol if provided. Pointer to array of floats of atols if you'd like a different atol for each y.
double max_step = MAX_STEP, # Maximum allowed step size.
double first_step = 0.0 # Initial step size. If set to 0.0 then CyRK will guess a good step size.
size_t expected_size = 0, # Expected size of the solution. There is a slight performance improvement if selecting the the exact or slightly more time steps than the adaptive stepper will require (if you happen to know this ahead of time).
)
```

Expand Down

0 comments on commit 9ca4d1b

Please sign in to comment.