#include <davidson.hpp>
Inheritance diagram for q3::GPUDavidsonWorkspace:Public Member Functions | |
| GPUDavidsonWorkspace (std::shared_ptr< execution::gpu::device::GPUDeviceBackend > device_backend) | |
| const Complex * | band_scratch () const override |
| Complex * | band_scratch () override |
| const Complex * | basis_vectors () const override |
| Complex * | basis_vectors () override |
| Real * | eigenvalues_device () |
| const Real * | eigenvalues_device () const |
| const Complex * | hamiltonian_basis_vectors () const override |
| Complex * | hamiltonian_basis_vectors () override |
| const Complex * | overlap_basis_vectors () const override |
| Complex * | overlap_basis_vectors () override |
| void | resize (int maximum_basis_size, int number_of_plane_waves, int number_of_bands, bool overlap_is_identity) override |
| const Complex * | subspace_hamiltonian () const override |
| Complex * | subspace_hamiltonian () override |
| const Complex * | subspace_overlap () const override |
| Complex * | subspace_overlap () override |
| void | sync_to_device () |
| void | sync_to_host () override |
Public Member Functions inherited from q3::PlanewaveDavidsonWorkspace | |
| virtual | ~PlanewaveDavidsonWorkspace ()=default |
| Real * | local_eigenvalues () |
| const Real * | local_eigenvalues () const |
Additional Inherited Members | |
Protected Attributes inherited from q3::PlanewaveDavidsonWorkspace | |
| std::vector< Real > | local_eigenvalues_host_ |
Definition at line 217 of file davidson.hpp.
|
inlineexplicit |
Definition at line 219 of file davidson.hpp.
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 314 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
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.
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 311 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 279 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 276 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inline |
Definition at line 318 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inline |
Definition at line 321 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 286 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 283 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 293 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 290 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
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.
The device path still allocates its S buffers. Aliasing them would need the same write audit on every GPU kernel, and that wants its own change with a device to test it on.
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 230 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data(), q3::PlanewaveDavidsonWorkspace::local_eigenvalues_host_, and q3::execution::gpu::device::GPUDeviceBuffer< T >::size().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 300 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 297 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 307 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 304 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data().
|
inline |
Definition at line 325 of file davidson.hpp.
References q3::execution::gpu::device::GPUDeviceBuffer< T >::data(), and q3::PlanewaveDavidsonWorkspace::local_eigenvalues_host_.
|
inlineoverridevirtual |
Implements q3::PlanewaveDavidsonWorkspace.
Definition at line 331 of file davidson.hpp.