#include <davidson.hpp>
Inheritance diagram for q3::PlanewaveDavidsonWorkspace:Public Member Functions | |
| virtual | ~PlanewaveDavidsonWorkspace ()=default |
| virtual const Complex * | band_scratch () const =0 |
| virtual Complex * | band_scratch ()=0 |
| virtual const Complex * | basis_vectors () const =0 |
| virtual Complex * | basis_vectors ()=0 |
| virtual const Complex * | hamiltonian_basis_vectors () const =0 |
| virtual Complex * | hamiltonian_basis_vectors ()=0 |
| Real * | local_eigenvalues () |
| const Real * | local_eigenvalues () const |
| virtual const Complex * | overlap_basis_vectors () const =0 |
| virtual Complex * | overlap_basis_vectors ()=0 |
| virtual void | resize (int maximum_basis_size, int number_of_plane_waves, int number_of_bands, bool overlap_is_identity)=0 |
| virtual const Complex * | subspace_hamiltonian () const =0 |
| virtual Complex * | subspace_hamiltonian ()=0 |
| virtual const Complex * | subspace_overlap () const =0 |
| virtual Complex * | subspace_overlap ()=0 |
| virtual void | sync_to_host ()=0 |
Protected Attributes | |
| std::vector< Real > | local_eigenvalues_host_ |
Abstract workspace for Davidson diagonalizer.
Holds state resident in the appropriate memory space (CPU or GPU) to avoid memory copies during iterative steps.
Definition at line 61 of file davidson.hpp.
|
virtualdefault |
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
One band-sized buffer the solver borrows for a rotation that cannot be done in place – the subspace collapse and the final extraction. It replaced the Ritz vectors, H|Ritz>, S|Ritz> and residual arrays, which the correction-vector build made unnecessary.
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
inline |
Definition at line 86 of file davidson.hpp.
References local_eigenvalues_host_.
|
inline |
Definition at line 89 of file davidson.hpp.
References local_eigenvalues_host_.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Size the workspace for this k-point.
overlap_is_identity lets a norm-conserving run skip the S arrays entirely; the accessors then return the basis and Ritz buffers, which hold exactly the same values.
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
pure virtual |
Implemented in q3::SerialDavidsonWorkspace, and q3::GPUDavidsonWorkspace.
|
protected |
Definition at line 111 of file davidson.hpp.
Referenced by local_eigenvalues(), local_eigenvalues(), q3::SerialDavidsonWorkspace::resize(), q3::GPUDavidsonWorkspace::resize(), and q3::GPUDavidsonWorkspace::sync_to_device().