MADNESS 0.10.1
|
A simple Krylov-subspace nonlinear equation solver. More...
#include <nonlinsol.h>
Public Member Functions | |
NonlinearSolverND (unsigned int maxsub=10) | |
unsigned int | get_maxsub () const |
void | set_maxsub (const unsigned int &new_maxsub) |
Function< double, NDIM > | update (const Function< double, NDIM > &u, const Function< double, NDIM > &r, const double rcondtol=1e-8, const double cabsmax=1000.0) |
Computes next trial solution vector. | |
Public Attributes | |
bool | do_print |
Private Attributes | |
unsigned int | maxsub |
Maximum size of subspace dimension. | |
real_tensor | Q |
std::vector< Function< double, NDIM > > | rlist |
std::vector< Function< double, NDIM > > | ulist |
A simple Krylov-subspace nonlinear equation solver.
|
inline |
|
inline |
References madness::NonlinearSolverND< NDIM >::maxsub.
|
inline |
References madness::NonlinearSolverND< NDIM >::maxsub.
|
inline |
Computes next trial solution vector.
You are responsible for performing step restriction or line search (not necessary for linear problems).
u | Current solution vector |
r | Corresponding residual |
[in] | rcondtol | rcond less than this will cause the subspace to be shrunk due to linear dependence |
[in] | cabsmax | maximum element of c greater than this will cause the subspace to be shrunk due to linear dependence |
References c, madness::check_linear_dependence(), madness::Function< T, NDIM >::compress(), madness::copy(), madness::NonlinearSolverND< NDIM >::do_print, madness::Function< T, NDIM >::gaxpy(), madness::inner(), madness::KAIN(), madness::NonlinearSolverND< NDIM >::maxsub, madness::print(), madness::NonlinearSolverND< NDIM >::Q, madness::NonlinearSolverND< NDIM >::rlist, madness::Function< T, NDIM >::size(), madness::Function< T, NDIM >::truncate(), u(), and madness::NonlinearSolverND< NDIM >::ulist.
Referenced by madness::CC2::iterate_pair(), and madness::MP2::solve_residual_equations().
bool madness::NonlinearSolverND< NDIM >::do_print |
|
private |
Maximum size of subspace dimension.
Referenced by madness::NonlinearSolverND< NDIM >::get_maxsub(), madness::NonlinearSolverND< NDIM >::set_maxsub(), and madness::NonlinearSolverND< NDIM >::update().
|
private |
Referenced by madness::NonlinearSolverND< NDIM >::update().
|
private |
Referenced by madness::NonlinearSolverND< NDIM >::update().
|
private |
Referenced by madness::NonlinearSolverND< NDIM >::update().