FML
Data Structures | Typedefs | Functions | Variables
FML::SOLVERS::ODESOLVER Namespace Reference

This namespace contains solvers for (coupled) ordinary differential equations. More...

Data Structures

class  ODESolver
 This is a wrapper around the GSL library to easily solve ODEs and return the data in whatever format you want. More...
 

Typedefs

using DVector = std::vector< double >
 
using DVector2D = std::vector< DVector >
 
using ODEFunctionPointer = int(*)(double, const double[], double[], void *)
 
using ODEFunctionPointerJacobian = int(*)(double, const double[], double[], double[], void *)
 
using ODEFunction = std::function< int(double, const double *, double *)>
 
using ODEFunctionJacobian = std::function< int(double, const double *, double *, double *)>
 

Functions

int ode_wrapper (double x, const double *y, double *dydx, void *param)
 
int jacobian_wrapper (double t, const double *y, double *dfdy, double *dfdt, void *param)
 

Variables

ODEFunctionJacobian no_jacobian
 
ODEFunctionJacobian * no_jacobian_ptr = &no_jacobian
 

Detailed Description

This namespace contains solvers for (coupled) ordinary differential equations.

Typedef Documentation

◆ DVector

using FML::SOLVERS::ODESOLVER::DVector = typedef std::vector<double>

Definition at line 29 of file ODESolver.h.

◆ DVector2D

using FML::SOLVERS::ODESOLVER::DVector2D = typedef std::vector<DVector>

Definition at line 30 of file ODESolver.h.

◆ ODEFunction

using FML::SOLVERS::ODESOLVER::ODEFunction = typedef std::function<int(double, const double *, double *)>

Definition at line 33 of file ODESolver.h.

◆ ODEFunctionJacobian

using FML::SOLVERS::ODESOLVER::ODEFunctionJacobian = typedef std::function<int(double, const double *, double *, double *)>

Definition at line 34 of file ODESolver.h.

◆ ODEFunctionPointer

using FML::SOLVERS::ODESOLVER::ODEFunctionPointer = typedef int (*)(double, const double[], double[], void *)

Definition at line 31 of file ODESolver.h.

◆ ODEFunctionPointerJacobian

using FML::SOLVERS::ODESOLVER::ODEFunctionPointerJacobian = typedef int (*)(double, const double[], double[], double[], void *)

Definition at line 32 of file ODESolver.h.

Function Documentation

◆ jacobian_wrapper()

int FML::SOLVERS::ODESOLVER::jacobian_wrapper ( double  t,
const double *  y,
double *  dfdy,
double *  dfdt,
void *  param 
)

Definition at line 46 of file ODESolver.cpp.

46 {
47 auto * p = static_cast<struct ODEParamWrapper *>(param);
48 return (p->get_jacobian())(t, y, dfdy, dfdt);
49 }
return y
Definition: Global.h:265

◆ ode_wrapper()

int FML::SOLVERS::ODESOLVER::ode_wrapper ( double  x,
const double *  y,
double *  dydx,
void *  param 
)

Definition at line 41 of file ODESolver.cpp.

41 {
42 auto * p = static_cast<struct ODEParamWrapper *>(param);
43 return (p->get_deriv())(x, y, dydx);
44 }
x
Definition: test.py:18

Variable Documentation

◆ no_jacobian

ODEFunctionJacobian FML::SOLVERS::ODESOLVER::no_jacobian
Initial value:
= []([[maybe_unused]] double t,
[[maybe_unused]] const double * y,
[[maybe_unused]] double * dfdy,
[[maybe_unused]] double * dfdt) { return GSL_SUCCESS; }

Definition at line 22 of file ODESolver.cpp.

◆ no_jacobian_ptr

ODEFunctionJacobian * FML::SOLVERS::ODESOLVER::no_jacobian_ptr = &no_jacobian

Definition at line 27 of file ODESolver.cpp.