Class ode_bv_shoot (o2scl)

O2scl : Class List

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

Solve boundary-value ODE problems by shooting from one boundary to the other.

This class is experimental.

Documentation links for default template arguments

  • func_t - ode_funct

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

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

Subclassed by o2scl::ode_bv_shoot_grid< mat_t, mat_row_t, func_t, vec_t, vec_int_t >

Temporary storage for \ref solve_fun()

vec_t sy
vec_t sy2
vec_t syerr
vec_t sdydx
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 Types

typedef boost::numeric::ublas::vector<double> ubvector
typedef boost::numeric::ublas::matrix<double> ubmatrix

Public Functions

inline ode_bv_shoot()
inline virtual ~ode_bv_shoot()
inline void allocate(size_t n)

Allocate internal storage.

inline int solve_final_value(double x0, double x1, double h, size_t n, vec_t &ystart, vec_t &yend, vec_int_t &index, vec_t &yerr, vec_t &dydx_end, func_t &derivs)

Solve the boundary-value problem and store the solution.

Given the n initial values of the functions in ystart, this function integrates the ODEs specified in derivs over the interval from x0 to x1 with an initial stepsize of h. The final values of the function are given in yend, the derivatives in dydx_end, and the associated errors are given in yerr. The initial values of yend and yerr are ignored.

template<class mat_t, class mat_row_t>
inline int solve_store(double x0, double x1, double h, size_t n, vec_t &ystart, vec_t &yend, vec_int_t &index, size_t &n_sol, vec_t &x_sol, mat_t &y_sol, mat_t &yerr_sol, mat_t &dydx_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_ystart

Storage for the starting vector.

vec_t *l_yend

Storage for the ending vector.

vec_t *l_yerr

Storage for the starting vector.

vec_t *l_dydx_end

Storage for the ending vector.

double l_x0

Storage for the starting point.

double l_x1

Storage for the ending abcissa.

double l_h

Storage for the stepsize.

func_t *l_derivs

The functions to integrate.

size_t l_n

The number of functions.