26#ifndef dftefe_RDM1Spectral_h
27#define dftefe_RDM1Spectral_h
38 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
45 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
48 std::unique_ptr<linearAlgebra::MultiVector<ValueType, memorySpace>>
61 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
99 std::unique_ptr<SpectralRep<ValueType, memorySpace>>
d_spectral;
109 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
113 std::unique_ptr<SpectralRep<ValueType, memorySpace>>
d_spectral;
Resource Acquisition Is Initialization (RAII) wrapper that temporarily holds the SpectralRep moved ou...
Definition: RDM1Spectral.h:111
void returnBack()
Definition: RDM1Spectral.t.cpp:109
RDM1Spectral< ValueType, memorySpace > * d_owner
Definition: RDM1Spectral.h:112
RDM1Access & operator=(const RDM1Access &)=delete
~RDM1Access()
Definition: RDM1Spectral.t.cpp:101
RDM1Access(const RDM1Access &)=delete
std::unique_ptr< SpectralRep< ValueType, memorySpace > > d_spectral
Definition: RDM1Spectral.h:113
SpectralRep< ValueType, memorySpace > & getSpectral()
Definition: RDM1Spectral.t.cpp:120
Intermediate abstract class that stores the spectral (eigen) decomposition of the one-particle reduce...
Definition: RDM1Spectral.h:63
RDM1Access< ValueType, memorySpace > getAccess()
Resource Acquisition Is Initialization (RAII) access object that moves ownership out for the eigensol...
Definition: RDM1Spectral.t.cpp:63
std::unique_ptr< SpectralRep< ValueType, memorySpace > > d_spectral
Definition: RDM1Spectral.h:99
RDM1Spectral()
Definition: RDM1Spectral.t.cpp:37
virtual ~RDM1Spectral()=default
typename RDM1< ValueType, memorySpace >::AttrStorage AttrStorage
Definition: RDM1Spectral.h:65
bool isSpectralSet() const
Definition: RDM1Spectral.t.cpp:74
bool d_evalFlag
Definition: RDM1Spectral.h:100
const SpectralRep< ValueType, memorySpace > & getSpectral() const
Read-only reference to the spectral data — does not move ownership. Use for Ts / Exc / NLPSP read-onl...
Definition: RDM1Spectral.t.cpp:53
void setSpectral(std::unique_ptr< SpectralRep< ValueType, memorySpace > > spectral)
Store the spectral representation (takes ownership). Sets d_evalFlag = true.
Definition: RDM1Spectral.t.cpp:44
Abstract class for the one-particle reduced density matrix.
Definition: RDM1.h:52
std::vector< dftefe::quadrature::QuadratureValuesContainer< double, dftefe::utils::MemorySpace::HOST > > AttrStorage
Definition: RDM1.h:59
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9
Plain data bundle holding the KS spectral decomposition: orbitals, occupancies (one vector per k-poin...
Definition: RDM1Spectral.h:47
size_type nKSOrbs
Definition: RDM1Spectral.h:51
std::vector< double > occupancies
Definition: RDM1Spectral.h:50
std::unique_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > ksOrbs
Definition: RDM1Spectral.h:49