SIRIUS 7.5.0
Electronic structure library and applications
|
#include <ultrasoft_precond_k.hpp>
Inherits sirius::local::OperatorBase.
Public Member Functions | |
Ultrasoft_preconditioner (Simulation_context &simulation_context, const Q_operator< double > &q_op, int ispn, const Beta_projectors_base< double > &bp, const fft::Gvec &gkvec) | |
sddk::mdarray< numeric_t, 2 > | apply (const sddk::mdarray< numeric_t, 2 > &X, sddk::memory_t pm=sddk::memory_t::none) |
void | apply (sddk::mdarray< numeric_t, 2 > &Y, const sddk::mdarray< numeric_t, 2 > &X, sddk::memory_t pm=sddk::memory_t::none) |
const Simulation_context & | ctx () const |
Public Member Functions inherited from sirius::local::OperatorBase | |
OperatorBase (int n) | |
int | size () const |
Private Attributes | |
Simulation_context & | ctx_ |
Teter< numeric_t > | P |
const Q_operator< double > & | q_op |
int | ispn_ |
const Beta_projectors_base< double > & | bp_ |
sddk::mdarray< int, 1 > | ipiv_ |
sddk::mdarray< numeric_t, 2 > | LU_ |
Ultrasoft preconditioner for direct minimization.
(1+T)⁻¹ + G R G⊹ where R = -Q (1 + C Q)⁻¹ and G are the "preconditioned" beta projectors, C = B⊹ K B TODO: what is K?
Hasnip, P. J., & Pickard, C. J. (). Electronic energy minimisation with ultrasoft pseudopotentials. , 174(1), 24–29. http://dx.doi.org/10.1016/j.cpc.2005.07.011
Definition at line 152 of file ultrasoft_precond_k.hpp.
sirius::Ultrasoft_preconditioner< numeric_t >::Ultrasoft_preconditioner | ( | Simulation_context & | simulation_context, |
const Q_operator< double > & | q_op, | ||
int | ispn, | ||
const Beta_projectors_base< double > & | bp, | ||
const fft::Gvec & | gkvec | ||
) |
Definition at line 179 of file ultrasoft_precond_k.hpp.
sddk::mdarray< numeric_t, 2 > sirius::Ultrasoft_preconditioner< numeric_t >::apply | ( | const sddk::mdarray< numeric_t, 2 > & | X, |
sddk::memory_t | pm = sddk::memory_t::none |
||
) |
Definition at line 230 of file ultrasoft_precond_k.hpp.
void sirius::Ultrasoft_preconditioner< numeric_t >::apply | ( | sddk::mdarray< numeric_t, 2 > & | Y, |
const sddk::mdarray< numeric_t, 2 > & | X, | ||
sddk::memory_t | pm = sddk::memory_t::none |
||
) |
Definition at line 239 of file ultrasoft_precond_k.hpp.
|
inline |
Definition at line 162 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 169 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 170 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 171 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 172 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 173 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 174 of file ultrasoft_precond_k.hpp.
|
private |
Definition at line 175 of file ultrasoft_precond_k.hpp.