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

#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_
 

Detailed Description

Definition at line 28 of file init.hpp.

Constructor & Destructor Documentation

◆ PseudopotentialOverlapOperator()

q3::PseudopotentialOverlapOperator::PseudopotentialOverlapOperator ( const Crystal &  crystal_structure,
const NormConservingPlanewaveKohnShamQuantumSystem &  quantum_system,
const Matrix< Complex > &  kleinman_bylander_potential,
const execution::ExecutionPolicy &  execution_policy 
)
inline

Definition at line 30 of file init.hpp.

Member Function Documentation

◆ apply()

void q3::PseudopotentialOverlapOperator::apply ( int  number_of_plane_waves,
const Complex *  wavefunction,
Complex *  overlap_wavefunction 
) const
inlineoverridevirtual

Implements q3::OverlapOperator.

Reimplemented in q3::UltrasoftPseudopotentialOverlapOperator.

Definition at line 40 of file init.hpp.

◆ build_dense_matrix()

void q3::PseudopotentialOverlapOperator::build_dense_matrix ( int  number_of_plane_waves,
std::vector< Complex > &  overlap_matrix 
) const
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.

Definition at line 58 of file init.hpp.

◆ is_identity()

bool q3::PseudopotentialOverlapOperator::is_identity ( ) const
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.

Definition at line 48 of file init.hpp.

Member Data Documentation

◆ crystal_structure_

const Crystal& q3::PseudopotentialOverlapOperator::crystal_structure_
protected

◆ execution_policy_

const execution::ExecutionPolicy& q3::PseudopotentialOverlapOperator::execution_policy_
protected

◆ kleinman_bylander_potential_

const Matrix<Complex>& q3::PseudopotentialOverlapOperator::kleinman_bylander_potential_
protected

◆ quantum_system_


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