Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::SerialDavidsonWorkspace Class Reference

#include <davidson.hpp>

+ Inheritance diagram for q3::SerialDavidsonWorkspace:

Public Member Functions

const Complex * band_scratch () const override
 
Complex * band_scratch () override
 
const Complex * basis_vectors () const override
 
Complex * basis_vectors () override
 
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_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_
 

Detailed Description

Definition at line 114 of file davidson.hpp.

Member Function Documentation

◆ band_scratch() [1/2]

const Complex * q3::SerialDavidsonWorkspace::band_scratch ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 200 of file davidson.hpp.

◆ band_scratch() [2/2]

Complex * q3::SerialDavidsonWorkspace::band_scratch ( )
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 197 of file davidson.hpp.

◆ basis_vectors() [1/2]

const Complex * q3::SerialDavidsonWorkspace::basis_vectors ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 165 of file davidson.hpp.

◆ basis_vectors() [2/2]

Complex * q3::SerialDavidsonWorkspace::basis_vectors ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 162 of file davidson.hpp.

◆ hamiltonian_basis_vectors() [1/2]

const Complex * q3::SerialDavidsonWorkspace::hamiltonian_basis_vectors ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 172 of file davidson.hpp.

◆ hamiltonian_basis_vectors() [2/2]

Complex * q3::SerialDavidsonWorkspace::hamiltonian_basis_vectors ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 169 of file davidson.hpp.

◆ overlap_basis_vectors() [1/2]

const Complex * q3::SerialDavidsonWorkspace::overlap_basis_vectors ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 179 of file davidson.hpp.

◆ overlap_basis_vectors() [2/2]

Complex * q3::SerialDavidsonWorkspace::overlap_basis_vectors ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 176 of file davidson.hpp.

◆ resize()

void q3::SerialDavidsonWorkspace::resize ( int  maximum_basis_size,
int  number_of_plane_waves,
int  number_of_bands,
bool  overlap_is_identity 
)
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.

For norm-conserving runs the overlap operator is the identity, so S|V> and S|psi> are bit-for-bit the basis and the Ritz vectors. The two arrays are not allocated at all; the accessors hand back the originals, and the subspace manager skips the writes that would otherwise be applied to the same memory twice. That is five arrays of number_of_bands x number_of_plane_waves not held.

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 116 of file davidson.hpp.

References q3::PlanewaveDavidsonWorkspace::local_eigenvalues_host_.

◆ subspace_hamiltonian() [1/2]

const Complex * q3::SerialDavidsonWorkspace::subspace_hamiltonian ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 186 of file davidson.hpp.

◆ subspace_hamiltonian() [2/2]

Complex * q3::SerialDavidsonWorkspace::subspace_hamiltonian ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 183 of file davidson.hpp.

◆ subspace_overlap() [1/2]

const Complex * q3::SerialDavidsonWorkspace::subspace_overlap ( ) const
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 193 of file davidson.hpp.

◆ subspace_overlap() [2/2]

Complex * q3::SerialDavidsonWorkspace::subspace_overlap ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 190 of file davidson.hpp.

◆ sync_to_host()

void q3::SerialDavidsonWorkspace::sync_to_host ( )
inlineoverridevirtual

Implements q3::PlanewaveDavidsonWorkspace.

Definition at line 204 of file davidson.hpp.


The documentation for this class was generated from the following file: