OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
OdeSolverDetail.hpp File Reference

Shared Cash-Karp implementation for typed and erased derivative callbacks. More...

#include "OdeSolver.hpp"
#include <cmath>
#include <utility>
Include dependency graph for OdeSolverDetail.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::ode::detail::OdeWorkspace
 

Namespaces

namespace  openswmm
 
namespace  openswmm::ode
 
namespace  openswmm::ode::detail
 

Functions

OdeWorkspace & openswmm::ode::detail::workspace (int n)
 Grow this thread's reusable solver arrays for n equations.
 
template<typename F>
void openswmm::ode::detail::rkck (OdeWorkspace &ws_, double x, int n, double h, F &&derivs)
 Evaluate one Cash-Karp trial step in the thread-local workspace.
 
template<typename F>
int openswmm::ode::detail::rkqs (OdeWorkspace &ws_, double *x, int n, double htry, double eps, double *hdid, double *hnext, F &&derivs)
 Reject and shrink trial RK45 steps until local error is acceptable.
 
template<typename F>
int openswmm::ode::detail::integrate (double *ystart, int n, double x1, double x2, double eps, double h1, F &&derivs)
 
template<typename F>
int openswmm::ode::integrateCallable (double *y, int n, double x1, double x2, double eps, double h1, F &&derivs)
 Integrate with a concrete synchronous derivative callable.
 

Detailed Description

Shared Cash-Karp implementation for typed and erased derivative callbacks.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0