ODE solver using a generic linear solver to solve finite-difference equations. More...
#include <ode_it_solve.h>
Set up convergence error if it goes beyond max iterations
Create a GSL-like set() and iterate() interface
Implement as a child of ode_bv_solve ?
Max and average tolerance?
Allow the user to ensure that the solver doesn't apply the full correction
Definition at line 68 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) |
Solve derivs with boundary conditions left and right. More... | |
| template<class dfunc_t > | |
| int | solve_derivs (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, dfunc_t &d_derivs, dfunc_t &d_left, dfunc_t &d_right, solver_mat_t &mat, solver_vec_t &rhs, solver_vec_t &dy) |
Solve derivs with boundary conditions left and right. More... | |
Public Attributes | |
| bool | make_mats |
| int | verbose |
| Set level of output (default 0) | |
| double | eps_rel |
Stepsize for finite differencing (default ) | |
| double | eps_min |
Minimum stepsize for finite differencing (default ) | |
| double | tol_rel |
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. | |
Storage for functions | |
| func_t * | fl |
| func_t * | fr |
| func_t * | fd |
| o2scl_linalg::linear_solver< solver_vec_t, solver_mat_t > * | solver |
| Solver. | |
| virtual double | fd_left (size_t ieq, size_t ivar, double x, matrix_row_t &y) |
| Compute the derivatives of the LHS boundary conditions. More... | |
| virtual double | fd_right (size_t ieq, size_t ivar, double x, matrix_row_t &y) |
| Compute the derivatives of the RHS boundary conditions. More... | |
| virtual double | fd_derivs (size_t ieq, size_t ivar, double x, matrix_row_t &y) |
| Compute the finite-differenced part of the differential equations. More... | |
|
inlineprotectedvirtual |
This function computes
Definition at line 399 of file ode_it_solve.h.
|
inlineprotectedvirtual |
This function computes
Definition at line 352 of file ode_it_solve.h.
|
inlineprotectedvirtual |
This function computes
Definition at line 375 of file ode_it_solve.h.
|
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].
Function derivatives for iterative solving of ODEs
Definition at line 135 of file ode_it_solve.h.
|
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 184 of file ode_it_solve.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).