ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | List of all members
Structure_Factor Class Reference

#include <structure_factor.h>

Collaboration diagram for Structure_Factor:

Public Member Functions

 Structure_Factor ()
 
 ~Structure_Factor ()
 
void set (const ModulePW::PW_Basis *rho_basis_in, const int &nbspline_in)
 
void setup_structure_factor (const UnitCell *Ucell, const Parallel_Grid &pgrid, const ModulePW::PW_Basis *rho_basis)
 
void bspline_sf (const int, const UnitCell *Ucell, const Parallel_Grid &pgrid, const ModulePW::PW_Basis *rho_basis)
 calculate structure factors through Cardinal B-spline interpolation
 
void bsplinecoef (std::complex< double > *b1, std::complex< double > *b2, std::complex< double > *b3, const int nx, const int ny, const int nz, const int norder)
 
template<typename FPTYPE >
std::complex< FPTYPE > * get_eigts1_data () const
 
template<typename FPTYPE >
std::complex< FPTYPE > * get_eigts2_data () const
 
template<typename FPTYPE >
std::complex< FPTYPE > * get_eigts3_data () const
 
std::complex< double > * get_sk (const int ik, const int it, const int ia, const ModulePW::PW_Basis_K *wfc_basis) const
 
template<typename FPTYPE , typename Device >
void get_sk (Device *ctx, const int ik, const ModulePW::PW_Basis_K *wfc_basis, std::complex< FPTYPE > *sk) const
 
std::complex< double > * get_skq (int ik, int it, int ia, const ModulePW::PW_Basis_K *wfc_basis, ModuleBase::Vector3< double > q)
 
template<>
std::complex< float > * get_eigts1_data () const
 
template<>
std::complex< double > * get_eigts1_data () const
 
template<>
std::complex< float > * get_eigts2_data () const
 
template<>
std::complex< double > * get_eigts2_data () const
 
template<>
std::complex< float > * get_eigts3_data () const
 
template<>
std::complex< double > * get_eigts3_data () const
 

Public Attributes

int nbspline =0
 
ModuleBase::ComplexMatrix strucFac
 
ModuleBase::ComplexMatrix eigts1
 
ModuleBase::ComplexMatrix eigts2
 
ModuleBase::ComplexMatrix eigts3
 

Private Attributes

const UnitCellucell =nullptr
 
std::complex< float > * c_eigts1 = nullptr
 
std::complex< float > * c_eigts2 = nullptr
 
std::complex< float > * c_eigts3 = nullptr
 
std::complex< double > * z_eigts1 = nullptr
 
std::complex< double > * z_eigts2 = nullptr
 
std::complex< double > * z_eigts3 = nullptr
 
const ModulePW::PW_Basisrho_basis = nullptr
 
std::string device = "cpu"
 

Constructor & Destructor Documentation

◆ Structure_Factor()

Structure_Factor::Structure_Factor ( )

◆ ~Structure_Factor()

Structure_Factor::~Structure_Factor ( )

Member Function Documentation

◆ bspline_sf()

void Structure_Factor::bspline_sf ( const int  norder,
const UnitCell Ucell,
const Parallel_Grid pgrid,
const ModulePW::PW_Basis rho_basis 
)

calculate structure factors through Cardinal B-spline interpolation

Here is the call graph for this function:

◆ bsplinecoef()

void Structure_Factor::bsplinecoef ( std::complex< double > *  b1,
std::complex< double > *  b2,
std::complex< double > *  b3,
const int  nx,
const int  ny,
const int  nz,
const int  norder 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_eigts1_data() [1/3]

template<>
std::complex< float > * Structure_Factor::get_eigts1_data ( ) const

◆ get_eigts1_data() [2/3]

template<>
std::complex< double > * Structure_Factor::get_eigts1_data ( ) const

◆ get_eigts1_data() [3/3]

template<typename FPTYPE >
std::complex< FPTYPE > * Structure_Factor::get_eigts1_data ( ) const

◆ get_eigts2_data() [1/3]

template<>
std::complex< float > * Structure_Factor::get_eigts2_data ( ) const

◆ get_eigts2_data() [2/3]

template<>
std::complex< double > * Structure_Factor::get_eigts2_data ( ) const

◆ get_eigts2_data() [3/3]

template<typename FPTYPE >
std::complex< FPTYPE > * Structure_Factor::get_eigts2_data ( ) const

◆ get_eigts3_data() [1/3]

template<>
std::complex< float > * Structure_Factor::get_eigts3_data ( ) const

◆ get_eigts3_data() [2/3]

template<>
std::complex< double > * Structure_Factor::get_eigts3_data ( ) const

◆ get_eigts3_data() [3/3]

template<typename FPTYPE >
std::complex< FPTYPE > * Structure_Factor::get_eigts3_data ( ) const

◆ get_sk() [1/2]

std::complex< double > * Structure_Factor::get_sk ( const int  ik,
const int  it,
const int  ia,
const ModulePW::PW_Basis_K wfc_basis 
) const
Here is the caller graph for this function:

◆ get_sk() [2/2]

template<typename FPTYPE , typename Device >
void Structure_Factor::get_sk ( Device *  ctx,
const int  ik,
const ModulePW::PW_Basis_K wfc_basis,
std::complex< FPTYPE > *  sk 
) const
Here is the call graph for this function:

◆ get_skq()

std::complex< double > * Structure_Factor::get_skq ( int  ik,
int  it,
int  ia,
const ModulePW::PW_Basis_K wfc_basis,
ModuleBase::Vector3< double >  q 
)
Here is the call graph for this function:

◆ set()

void Structure_Factor::set ( const ModulePW::PW_Basis rho_basis_in,
const int &  nbspline_in 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_structure_factor()

void Structure_Factor::setup_structure_factor ( const UnitCell Ucell,
const Parallel_Grid pgrid,
const ModulePW::PW_Basis rho_basis 
)
Here is the caller graph for this function:

Member Data Documentation

◆ c_eigts1

std::complex<float>* Structure_Factor::c_eigts1 = nullptr
private

◆ c_eigts2

std::complex<float> * Structure_Factor::c_eigts2 = nullptr
private

◆ c_eigts3

std::complex<float> * Structure_Factor::c_eigts3 = nullptr
private

◆ device

std::string Structure_Factor::device = "cpu"
private

◆ eigts1

ModuleBase::ComplexMatrix Structure_Factor::eigts1

◆ eigts2

ModuleBase::ComplexMatrix Structure_Factor::eigts2

◆ eigts3

ModuleBase::ComplexMatrix Structure_Factor::eigts3

◆ nbspline

int Structure_Factor::nbspline =0

◆ rho_basis

const ModulePW::PW_Basis* Structure_Factor::rho_basis = nullptr
private

◆ strucFac

ModuleBase::ComplexMatrix Structure_Factor::strucFac

◆ ucell

const UnitCell* Structure_Factor::ucell =nullptr
private

◆ z_eigts1

std::complex<double>* Structure_Factor::z_eigts1 = nullptr
private

◆ z_eigts2

std::complex<double> * Structure_Factor::z_eigts2 = nullptr
private

◆ z_eigts3

std::complex<double> * Structure_Factor::z_eigts3 = nullptr
private

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