Solve boundary-value ODE problems by shooting from one boundary to the other.
More...
#include <ode_bv_solve.h>
template<class func_t = ode_funct, class vec_t = boost::numeric::ublas::vector<double>, class vec_int_t = boost::numeric::ublas::vector<int>>
class o2scl::ode_bv_shoot< func_t, vec_t, vec_int_t >
This class is experimental.
Documentation links for default template arguments
Definition at line 84 of file ode_bv_solve.h.
|
void | allocate (size_t n) |
| Allocate internal storage.
|
|
int | solve_final_value (double x0, double x1, double h, size_t n, vec_t &ystart, vec_t ¥d, vec_int_t &index, vec_t &yerr, vec_t &dydx_end, func_t &derivs) |
| Solve the boundary-value problem and store the solution. More...
|
|
template<class mat_t , class mat_row_t > |
int | solve_store (double x0, double x1, double h, size_t n, vec_t &ystart, vec_t ¥d, 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. More...
|
|
int | set_iv (ode_iv_solve< func_t, vec_t > &ois) |
| Set initial value solver.
|
|
int | set_mroot (mroot< mm_funct<> > &root) |
| Set the equation solver.
|
|
|
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.
|
|
|
vec_t | sy |
|
vec_t | sy2 |
|
vec_t | syerr |
|
vec_t | sdydx |
|
size_t | mem_size |
| Size of recent allocation.
|
|
int | solve_fun (size_t nv, const vec_t &tx, vec_t &ty) |
| The shooting function to be solved by the multidimensional solver.
|
|
|
static const int | unk =0 |
| Unknown on both the left and right boundaries.
|
|
static const int | right =1 |
| Known on the right boundary.
|
|
static const int | left =2 |
| Known on the left boundary.
|
|
static const int | both =3 |
| Known on both the left and right boundaries.
|
|
◆ solve_final_value()
template<class func_t = ode_funct, class vec_t = boost::numeric::ublas::vector<double>, class vec_int_t = boost::numeric::ublas::vector<int>>
int o2scl::ode_bv_shoot< func_t, vec_t, vec_int_t >::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 |
|
) |
| |
|
inline |
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.
Definition at line 124 of file ode_bv_solve.h.
◆ solve_store()
template<class func_t = ode_funct, class vec_t = boost::numeric::ublas::vector<double>, class vec_int_t = boost::numeric::ublas::vector<int>>
template<class mat_t , class mat_row_t >
int o2scl::ode_bv_shoot< func_t, vec_t, vec_int_t >::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 |
|
) |
| |
|
inline |
The documentation for this class was generated from the following file: