DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::ksdft::RDM1Spectral< ValueType, memorySpace > Class Template Reference

Intermediate abstract class that stores the spectral (eigen) decomposition of the one-particle reduced density matrix — KS orbitals, occupancies, and orbital count via a SpectralRep bundle. Concrete subclasses (e.g. RDM1FE) implement getDescriptors() and getDensityObs() using this stored data. More...

#include <RDM1Spectral.h>

Inheritance diagram for dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >:
Collaboration diagram for dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >:

Public Types

using AttrStorage = typename RDM1< ValueType, memorySpace >::AttrStorage
 
- Public Types inherited from dftefe::ksdft::RDM1< ValueType, memorySpace >
using AttrStorage = std::vector< dftefe::quadrature::QuadratureValuesContainer< double, dftefe::utils::MemorySpace::HOST > >
 
using AttrStorageRef = std::reference_wrapper< AttrStorage >
 
using AttrStorageConstRef = std::reference_wrapper< const AttrStorage >
 

Public Member Functions

 RDM1Spectral ()
 
virtual ~RDM1Spectral ()=default
 
void setSpectral (std::unique_ptr< SpectralRep< ValueType, memorySpace > > spectral)
 Store the spectral representation (takes ownership). Sets d_evalFlag = true. More...
 
const SpectralRep< ValueType, memorySpace > & getSpectral () const
 Read-only reference to the spectral data — does not move ownership. Use for Ts / Exc / NLPSP read-only access. More...
 
RDM1Access< ValueType, memorySpace > getAccess ()
 Resource Acquisition Is Initialization (RAII) access object that moves ownership out for the eigensolver (write access). Returns ownership on destruction or explicit returnBack(). More...
 
bool isSpectralSet () const
 
- Public Member Functions inherited from dftefe::ksdft::RDM1< ValueType, memorySpace >
virtual ~RDM1 ()=default
 Default destructor. More...
 
virtual void setEvalDescrFlag (const bool evalFlag)=0
 
virtual void getDescriptors (const std::set< DensityDescrAttr > &densityAttrs, const std::set< WfcDescrAttr > &wfcAttrs, std::unordered_map< DensityDescrAttr, AttrStorage > &densityAttrVals, std::unordered_map< WfcDescrAttr, AttrStorage > &wfcAttrVals)=0
 
virtual void setDescriptors (const std::unordered_map< DensityDescrAttr, AttrStorage > &densityAttrVals, const std::unordered_map< WfcDescrAttr, AttrStorage > &wfcAttrVals)=0
 
virtual void getDensityObs (const std::set< DensityObsAttr > &densityObsAttrs, std::unordered_map< DensityObsAttr, std::vector< std::vector< double > > > &densityObsAttrVals)=0
 
virtual SpinMode spinMode () const =0
 
virtual bool isSOC () const =0
 
virtual size_type getnKSOrbs () const =0
 
virtual std::vector< double > getkPointCoords () const =0
 
virtual std::vector< double > getkPointWeights () const =0
 
virtual std::unique_ptr< RDM1< ValueType, memorySpace > > clone () const =0
 

Protected Attributes

std::unique_ptr< SpectralRep< ValueType, memorySpace > > d_spectral
 
bool d_evalFlag
 

Detailed Description

template<typename ValueType, dftefe::utils::MemorySpace memorySpace>
class dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >

Intermediate abstract class that stores the spectral (eigen) decomposition of the one-particle reduced density matrix — KS orbitals, occupancies, and orbital count via a SpectralRep bundle. Concrete subclasses (e.g. RDM1FE) implement getDescriptors() and getDensityObs() using this stored data.

Member Typedef Documentation

◆ AttrStorage

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
using dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::AttrStorage = typename RDM1<ValueType, memorySpace>::AttrStorage

Constructor & Destructor Documentation

◆ RDM1Spectral()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::RDM1Spectral

◆ ~RDM1Spectral()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
virtual dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::~RDM1Spectral ( )
virtualdefault

Member Function Documentation

◆ getAccess()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
RDM1Access< ValueType, memorySpace > dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::getAccess

Resource Acquisition Is Initialization (RAII) access object that moves ownership out for the eigensolver (write access). Returns ownership on destruction or explicit returnBack().

◆ getSpectral()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
const SpectralRep< ValueType, memorySpace > & dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::getSpectral

Read-only reference to the spectral data — does not move ownership. Use for Ts / Exc / NLPSP read-only access.

◆ isSpectralSet()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
bool dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::isSpectralSet

◆ setSpectral()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
void dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::setSpectral ( std::unique_ptr< SpectralRep< ValueType, memorySpace > >  spectral)

Store the spectral representation (takes ownership). Sets d_evalFlag = true.

Member Data Documentation

◆ d_evalFlag

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
bool dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::d_evalFlag
protected

◆ d_spectral

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
std::unique_ptr<SpectralRep<ValueType, memorySpace> > dftefe::ksdft::RDM1Spectral< ValueType, memorySpace >::d_spectral
protected

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