|
Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
|
#include <init.hpp>
Inheritance diagram for q3::PseudopotentialOverlapOperator:Public Member Functions | |
| PseudopotentialOverlapOperator (const Crystal &crystal_structure, const NormConservingPlanewaveKohnShamQuantumSystem &quantum_system, const Matrix< Complex > &kleinman_bylander_potential, const execution::ExecutionPolicy &execution_policy) | |
| void | apply (int number_of_plane_waves, const Complex *wavefunction, Complex *overlap_wavefunction) const override |
| void | build_dense_matrix (int number_of_plane_waves, std::vector< Complex > &overlap_matrix) const override |
| bool | is_identity () const override |
Public Member Functions inherited from q3::OverlapOperator | |
| virtual | ~OverlapOperator ()=default |
| virtual void | apply_batch (int number_of_plane_waves, int number_of_vectors, const Complex *wavefunctions, Complex *overlap_wavefunctions) const |
Protected Attributes | |
| const Crystal & | crystal_structure_ |
| const execution::ExecutionPolicy & | execution_policy_ |
| const Matrix< Complex > & | kleinman_bylander_potential_ |
| const NormConservingPlanewaveKohnShamQuantumSystem & | quantum_system_ |
|
inline |
|
inlineoverridevirtual |
Implements q3::OverlapOperator.
Reimplemented in q3::UltrasoftPseudopotentialOverlapOperator.
|
inlineoverridevirtual |
Build the dense overlap matrix S for the norm-conserving case.
For norm-conserving pseudopotentials, the plane-wave basis is orthonormal so the overlap matrix is the identity: S = I.
Implements q3::OverlapOperator.
Reimplemented in q3::UltrasoftPseudopotentialOverlapOperator.
|
inlineoverridevirtual |
Returns true if S = I (norm-conserving case). When true, Davidson can skip S·ψ ZGEMM and S_sub construction.
Reimplemented from q3::OverlapOperator.
Reimplemented in q3::UltrasoftPseudopotentialOverlapOperator.
|
protected |
Definition at line 67 of file init.hpp.
Referenced by q3::UltrasoftPseudopotentialOverlapOperator::build_dense_matrix().
|
protected |
Definition at line 70 of file init.hpp.
Referenced by q3::UltrasoftPseudopotentialOverlapOperator::apply(), and q3::UltrasoftPseudopotentialOverlapOperator::apply_batch().
Definition at line 69 of file init.hpp.
Referenced by q3::UltrasoftPseudopotentialOverlapOperator::apply(), q3::UltrasoftPseudopotentialOverlapOperator::apply_batch(), and q3::UltrasoftPseudopotentialOverlapOperator::build_dense_matrix().
|
protected |
Definition at line 68 of file init.hpp.
Referenced by q3::UltrasoftPseudopotentialOverlapOperator::apply(), q3::UltrasoftPseudopotentialOverlapOperator::apply_batch(), and q3::UltrasoftPseudopotentialOverlapOperator::build_dense_matrix().