Class ode_bv_multishoot (o2scl)

O2scl : Class List

template<class func_t = ode_funct<>, class vec_t = ubvector, class alloc_vec_t = ubvector, class alloc_t = ubvector_alloc, class vec_int_t = ubvector_int_base, class mat_t = ubmatrix>
class ode_bv_multishoot

Solve a ODE boundary value problem by multishooting.

This class is experimental.

Todo:

Improve documentation a little and create testing code

Public Functions

inline ode_bv_multishoot()
inline virtual ~ode_bv_multishoot()
inline virtual int solve(vec_t &mesh, int &n_func, vec_t &y_start, func_t &left_b, func_t &right_b, func_t &extra_b, func_t &derivs, vec_t &x_save, mat_t &y_save)
inline int set_iv(ode_iv_solve<func_t, vec_t, alloc_vec_t, alloc_t> &ois)
inline int set_mroot(mroot<mm_funct<>> &root)

Public Members

ode_iv_solve<func_t, vec_t, alloc_vec_t, alloc_t> def_ois
gsl_mroot_hybrids<mm_funct<>> def_mroot

Protected Functions

inline int solve_fun(size_t nv, const vec_t &sx, vec_t &sy)

Function to solve.

Protected Attributes

ode_iv_solve<func_t, vec_t, alloc_vec_t, alloc_t> *oisp

The initial value solver.

gsl_mroot_hybrids<mm_funct<>> *mrootp

The equation solver.

vec_t *l_mesh

Desc.

vec_t *l_y_start

Desc.

func_t *l_left_b

Desc.

func_t *l_right_b

Desc.

func_t *l_extra_b

Desc.

func_t *l_derivs

Desc.

int *l_n_func

Desc.

vec_t *l_x_save

Desc.

mat_t *l_y_save

Desc.

bool save

Desc.