apply the BSH operator on a vector of functions with corresponding potentials
More...
|
| BSHApply (World &world) |
|
std::vector< Function< T, NDIM > > | add_coupling_and_levelshift (const std::vector< Function< T, NDIM > > psi, const Tensor< T > fock1) const |
|
double | eps_in_green (const T eps) const |
| limit the orbital energy (diagonal fock matrix element) entering the Green's function parameter mu
|
|
std::vector< Function< T, NDIM > > | make_bra (const std::vector< Function< T, NDIM > > &rhs) const |
|
MolecularOrbitals< T, NDIM > | operator() (const MolecularOrbitals< T, NDIM > &arg, const std::vector< Function< T, NDIM > > &Vpsi) const |
| apply the BSH operator on the vector of functions and respective potentials
|
|
std::tuple< std::vector< Function< T, NDIM > >, Tensor< double > > | operator() (const std::vector< Function< T, NDIM > > psi, const Tensor< T > eps, const std::vector< Function< T, NDIM > > &Vpsi1) const |
| apply the BSH operator on the vector of functions and respective potentials
|
|
template<typename
T, std::size_t NDIM>
class madness::BSHApply< T, NDIM >
apply the BSH operator on a vector of functions with corresponding potentials
this class
- constructs the bsh operator with the appropriate exponents
- performs a level shift if necessary
- adds coupling terms: ( T - fock(i,i) ) psi_i = -V psi_i + \sum_{j\neq i} psi_j fock(j,i) TODO: adding a level shift seems to make the operation less precise, why??
template<typename
T , std::size_t NDIM>
apply the BSH operator on the vector of functions and respective potentials
- Parameters
-
[in] | eps | orbital energies or the square fock matrix |
[in] | Vpsi | vector of functions V*MOs |
- Returns
- an MO structure holding the residuals and the orbital energy updates
References madness::BSHApply< T, NDIM >::add_coupling_and_levelshift(), madness::apply(), madness::BSHApply< T, NDIM >::bshtol, madness::copy(), madness::cpu_time(), madness::BaseTensor::dim(), madness::BSHApply< T, NDIM >::eps_in_green(), madness::inner(), madness::BSHApply< T, NDIM >::lo, MADNESS_EXCEPTION, madness::BSHApply< T, NDIM >::make_bra(), madness::BaseTensor::ndim(), madness::print(), madness::BSHApply< T, NDIM >::printme, psi(), madness::real(), madness::BSHApply< T, NDIM >::residual, madness::BSHApply< T, NDIM >::ret_value, madness::BaseTensor::size(), T(), madness::truncate(), madness::BSHApply< T, NDIM >::update, and madness::BSHApply< T, NDIM >::world.
Referenced by madness::BSHApply< T, NDIM >::operator()().