#include <ode_it_solve.h>
Definition at line 130 of file ode_it_solve.h.
Public Member Functions | |
int | set_solver (o2scl_linalg::linear_solver< solver_vec_t, solver_mat_t > &ls) |
Set the linear solver. | |
int | solve (size_t n_grid, size_t n_eq, size_t nb_left, vec_t &x, mat_t &y, func_t &derivs, func_t &left, func_t &right, solver_mat_t &mat, solver_vec_t &rhs, solver_vec_t &dy, param_t &pa) |
Solve derivs with boundary conditions left and right . | |
Data Fields | |
int | verbose |
Set level of output (default 0). | |
double | h |
Stepsize for finite differencing (default ![]() | |
double | tolf |
Tolerance (default ![]() | |
size_t | niter |
Maximum number of iterations (default 30). | |
double | alpha |
Size of correction to apply (default 1.0). | |
o2scl_linalg::linear_solver_hh < solver_vec_t, solver_mat_t > | def_solver |
Default linear solver. | |
Protected Member Functions | |
virtual double | fd_left (size_t ieq, size_t ivar, double x, vec_t &y, param_t &pa) |
Compute the derivatives of the LHS boundary conditions. | |
virtual double | fd_right (size_t ieq, size_t ivar, double x, vec_t &y, param_t &pa) |
Compute the derivatives of the RHS boundary conditions. | |
virtual double | fd_derivs (size_t ieq, size_t ivar, double x, vec_t &y, param_t &pa) |
Compute the finite-differenced part of the differential equations. | |
Protected Attributes | |
o2scl_linalg::linear_solver < solver_vec_t, solver_mat_t > * | solver |
Solver. | |
Storage for functions | |
ode_it_funct< param_t, vec_t > * | fl |
ode_it_funct< param_t, vec_t > * | fr |
ode_it_funct< param_t, vec_t > * | fd |
virtual double fd_derivs | ( | size_t | ieq, | |
size_t | ivar, | |||
double | x, | |||
vec_t & | y, | |||
param_t & | pa | |||
) | [inline, protected, virtual] |
This function computes
Definition at line 391 of file ode_it_solve.h.
virtual double fd_left | ( | size_t | ieq, | |
size_t | ivar, | |||
double | x, | |||
vec_t & | y, | |||
param_t & | pa | |||
) | [inline, protected, virtual] |
This function computes
Definition at line 352 of file ode_it_solve.h.
virtual double fd_right | ( | size_t | ieq, | |
size_t | ivar, | |||
double | x, | |||
vec_t & | y, | |||
param_t & | pa | |||
) | [inline, protected, virtual] |
This function computes
Definition at line 371 of file ode_it_solve.h.
int solve | ( | size_t | n_grid, | |
size_t | n_eq, | |||
size_t | nb_left, | |||
vec_t & | x, | |||
mat_t & | y, | |||
func_t & | derivs, | |||
func_t & | left, | |||
func_t & | right, | |||
solver_mat_t & | mat, | |||
solver_vec_t & | rhs, | |||
solver_vec_t & | dy, | |||
param_t & | pa | |||
) | [inline] |
Given a grid of size n_grid
and n_eq
differential equations, solve them by relaxation. The grid is specified in x
, which is a vector of size n_grid
. The differential equations are given in derivs
, the boundary conditions on the left hand side in left
, and the boundary conditions on the right hand side in right
. The number of boundary conditions on the left hand side is nb_left
, and the number of boundary conditions on the right hand side should be n_eq-nb_left
. The initial guess for the solution, a matrix of size [n_grid][n_eq]
should be given in y
. Upon success, y
will contain an approximate solution of the differential equations. The matrix mat
is workspace of size [n_grid*n_eq][n_grid*n_eq]
, and the vectors rhs
and y
are workspace of size [n_grid*n_eq]
.
Definition at line 186 of file ode_it_solve.h.
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page