Class ode_bv_mshoot (o2scl)

O2scl : Class List

template<class func_t = ode_funct, class mat_t = boost::numeric::ublas::matrix<double>, class vec_t = boost::numeric::ublas::vector<double>, class vec_int_t = boost::numeric::ublas::vector<int>>
class ode_bv_mshoot : public o2scl::ode_bv_solve

Solve boundary-value ODE problems by multishooting with a generic nonlinear solver.

This class is experimental.

Default template arguments

  • func_t - ode_funct

  • mat_t - boost::numeric::ublas::matrix < double >

  • vec_t - boost::numeric::ublas::vector < double >

  • vec_int_t - boost::numeric::ublas::vector < int >

    Idea for Future:

    Make a class which performs an iterative linear solver which uses sparse matrices like ode_it_solve?

Temporary storage for \ref solve_fun()

vec_t sy
vec_t sy2
vec_t syerr
vec_t sdydx
vec_t sdydx2
size_t mem_size

Size of recent allocation.

inline int solve_fun(size_t nv, const vec_t &tx, vec_t &ty)

The shooting function to be solved by the multidimensional solver.

Public Functions

inline ode_bv_mshoot()
inline virtual ~ode_bv_mshoot()
inline int solve_final_value(double h, size_t n, size_t n_bound, vec_t &x_bound, mat_t &y_bound, vec_int_t &index, func_t &derivs)

Solve the boundary-value problem and store the solution.

template<class mat_row_t>
inline int solve_store(double h, size_t n, size_t n_bound, vec_t &x_bound, mat_t &y_bound, vec_int_t &index, size_t &n_sol, vec_t &x_sol, mat_t &y_sol, mat_t &dydx_sol, mat_t &yerr_sol, func_t &derivs)

Solve the boundary-value problem and store the solution.

inline int set_iv(ode_iv_solve<func_t, vec_t> &ois)

Set initial value solver.

inline int set_mroot(mroot<mm_funct<>> &root)

Set the equation solver.

Public Members

ode_iv_solve<func_t, vec_t> def_ois

The default initial value solver.

gsl_mroot_hybrids<mm_funct<>> def_mroot

The default equation solver.

Protected Attributes

ode_iv_solve<func_t, vec_t> *oisp

The solver for the initial value problem.

mroot<mm_funct<>> *mrootp

The equation solver.

vec_int_t *l_index

The index defining the boundary conditions.

vec_t *l_xbound

Storage for the starting vector.

mat_t *l_ybound

Storage for the ending vector.

double l_h

Storage for the stepsize.

func_t *l_derivs

The functions to integrate.

size_t l_n

The number of functions.

size_t l_nbound

The number of boundaries.

size_t l_lhs_unks

The number of unknowns on the LHS.