|
MADNESS
version 0.9
|
The structure needed if the kain solver shall be used. More...
#include <TDA.h>
Public Member Functions | |
| kain_solver_helper_struct () | |
| void | sanity_check (const xfunctionsT &xfunctions) const |
| void | initialize (World &world, const size_t excitations, const size_t nnoct, const bool kain) |
| void | update (xfunctionsT &xfunctions) |
| void | transform_subspace (World &world, const madness::Tensor< double > U) |
| void | reduce_subspace (const size_t i) |
| void | erase_subspace (const size_t i) |
| void | increase_subspace (World &world, const xfunctionsT &xfunctions) |
| std::vector< vecfuncT > | transform_vecfunctions (World &world, const std::vector< vecfuncT > &xfunctions, const madness::Tensor< double > U) const |
The structure needed if the kain solver shall be used.
|
inline |
|
inline |
Only erase the subspace, not delete the solver use this if you replace xfunctions
| [in] | i | the number of the solver/xfunction which subspace should be erased |
References MADNESS_EXCEPTION.
|
inline |
increase the subspace: adding new solvers use this if you add new xfunctions
| [in] | world | the world |
| [in] | xfunctions | the current xfunctions (which have been extended) |
References sanity_check(), and madness::XNonlinearSolver< T, C, Alloc >::set_maxsub().
Referenced by madness::TDA::solve().
|
inline |
Initialize the kain solver helper structure
| [in] | world | the world |
| [in] | excitations | the number of excitations planned to calculate |
| [in] | nnoct | the number of occupied (non frozen) orbitals = the number of response orbitals |
| [in] | kain | true if kain should be used, false if not (when false it is just the default initialization) |
| [in] | allatonce | should all xfunctions be solved ad once or not (currently: not) |
| [in] | guess_iter_ | number of guess iterations (not needed anymore) |
References madness::XNonlinearSolver< T, C, Alloc >::set_maxsub().
Referenced by madness::TDA::setup().
|
inline |
reduce the subspace: delete whole solvers Use this if you delete xfunctions
| [in] | i | the number of the xfunction that was deleted |
|
inline |
Check if everything is fine within the kain solver (use this when adding or deleting xfunctions)
| [in] | xfunctions,the | xfunctions of the current iteration |
References MADNESS_EXCEPTION.
Referenced by increase_subspace(), and madness::TDA::solve().
|
inline |
Transform the Kain subspace(s)
| [in] | world | the world |
| [in] | U | The transformation matrix |
References k, and transform_vecfunctions().
|
inline |
Helper function for the transform_subspace function of the structure
| [in] | world | the world |
| [in] | xfunctions | a vector of vectorfunctions |
| [in] | U | the transformation matrix |
| [out] | U*xfunctions | : the transformed vector of vectorfunctions |
References madness::compress(), madness::gaxpy(), and madness::World::size().
Referenced by transform_subspace().
|
inline |
Update the current response orbitals x of the xfunctions structures
| [in] | xfunctions | a vector if xfunctions structures of the current iteration (each xfunction should contain the x and curren_residuals) |
References k, MADNESS_EXCEPTION, madness::sub(), and madness::xfunction::x.
1.8.8