SIRIUS 7.5.0
Electronic structure library and applications
Public Types | Public Member Functions | Private Attributes | List of all members
sirius::Beta_projector_generator< T > Class Template Reference

#include <beta_projectors_base.hpp>

Public Types

typedef std::complex< T > complex_t
 
typedef sddk::mdarray< complex_t, 3 > array_t
 

Public Member Functions

 Beta_projector_generator (Simulation_context &ctx, array_t const &pw_coeffs_t_host, sddk::matrix< std::complex< T > > const &beta_pw_all, sddk::device_t processing_unit, std::vector< beta_chunk_t > const &beta_chunks, fft::Gvec const &gkvec, sddk::mdarray< double, 2 > const &gkvec_coord, int num_gkvec_loc)
 
void generate (beta_projectors_coeffs_t< T > &coeffs, int ichunk, int j) const
 
void generate (beta_projectors_coeffs_t< T > &coeffs, int ichunk) const
 
beta_projectors_coeffs_t< T > prepare () const
 
Simulation_contextctx ()
 
int num_chunks () const
 
const auto & chunks () const
 
auto device_t () const -> sddk::device_t
 

Private Attributes

Simulation_contextctx_
 Simulation context. More...
 
array_t const & pw_coeffs_t_host_
 Beta-projectors for atom-types. More...
 
array_t pw_coeffs_t_device_
 Beta-projectors for atom-types on device. More...
 
sddk::matrix< complex_t > const & beta_pw_all_atoms_
 Precomputed beta coefficients on CPU. More...
 
sddk::device_t processing_unit_
 Processing unit. More...
 
std::vector< beta_chunk_t > const & beta_chunks_
 Chunk descriptors. More...
 
fft::Gvec const & gkvec_
 G+k vectors. More...
 
sddk::mdarray< double, 2 > const & gkvec_coord_
 Coordinates of G+k vectors. More...
 
int num_gkvec_loc_
 Local number of G+k vectors. More...
 
int max_num_beta_
 Maximum number of beta-projectors. More...
 

Detailed Description

template<typename T>
class sirius::Beta_projector_generator< T >

Generates beta projector PW coefficients and holds GPU memory phase-factor independent coefficients of |> functions for atom types.

Definition at line 174 of file beta_projectors_base.hpp.

Member Typedef Documentation

◆ complex_t

template<typename T >
typedef std::complex<T> sirius::Beta_projector_generator< T >::complex_t

Definition at line 177 of file beta_projectors_base.hpp.

◆ array_t

template<typename T >
typedef sddk::mdarray<complex_t, 3> sirius::Beta_projector_generator< T >::array_t

Definition at line 178 of file beta_projectors_base.hpp.

Constructor & Destructor Documentation

◆ Beta_projector_generator()

template<typename T >
sirius::Beta_projector_generator< T >::Beta_projector_generator ( Simulation_context ctx,
array_t const &  pw_coeffs_t_host,
sddk::matrix< std::complex< T > > const &  beta_pw_all,
sddk::device_t  processing_unit,
std::vector< beta_chunk_t > const &  beta_chunks,
fft::Gvec const &  gkvec,
sddk::mdarray< double, 2 > const &  gkvec_coord,
int  num_gkvec_loc 
)

Definition at line 234 of file beta_projectors_base.hpp.

Member Function Documentation

◆ generate() [1/2]

template<class T >
void sirius::Beta_projector_generator< T >::generate ( beta_projectors_coeffs_t< T > &  coeffs,
int  ichunk,
int  j 
) const

Definition at line 283 of file beta_projectors_base.cpp.

◆ generate() [2/2]

template<class T >
void sirius::Beta_projector_generator< T >::generate ( beta_projectors_coeffs_t< T > &  coeffs,
int  ichunk 
) const

Definition at line 253 of file beta_projectors_base.cpp.

◆ prepare()

template<typename T >
beta_projectors_coeffs_t< T > sirius::Beta_projector_generator< T >::prepare

Definition at line 265 of file beta_projectors_base.hpp.

◆ ctx()

template<typename T >
Simulation_context & sirius::Beta_projector_generator< T >::ctx ( )
inline

Definition at line 191 of file beta_projectors_base.hpp.

◆ num_chunks()

template<typename T >
int sirius::Beta_projector_generator< T >::num_chunks ( ) const
inline

Definition at line 195 of file beta_projectors_base.hpp.

◆ chunks()

template<typename T >
const auto & sirius::Beta_projector_generator< T >::chunks ( ) const
inline

Definition at line 200 of file beta_projectors_base.hpp.

◆ device_t()

template<typename T >
auto sirius::Beta_projector_generator< T >::device_t ( ) const -> sddk::device_t
inline

Definition at line 205 of file beta_projectors_base.hpp.

Member Data Documentation

◆ ctx_

template<typename T >
Simulation_context& sirius::Beta_projector_generator< T >::ctx_
private

Simulation context.

Definition at line 212 of file beta_projectors_base.hpp.

◆ pw_coeffs_t_host_

template<typename T >
array_t const& sirius::Beta_projector_generator< T >::pw_coeffs_t_host_
private

Beta-projectors for atom-types.

Definition at line 214 of file beta_projectors_base.hpp.

◆ pw_coeffs_t_device_

template<typename T >
array_t sirius::Beta_projector_generator< T >::pw_coeffs_t_device_
private

Beta-projectors for atom-types on device.

Definition at line 216 of file beta_projectors_base.hpp.

◆ beta_pw_all_atoms_

template<typename T >
sddk::matrix<complex_t> const& sirius::Beta_projector_generator< T >::beta_pw_all_atoms_
private

Precomputed beta coefficients on CPU.

Definition at line 218 of file beta_projectors_base.hpp.

◆ processing_unit_

template<typename T >
sddk::device_t sirius::Beta_projector_generator< T >::processing_unit_
private

Processing unit.

Definition at line 220 of file beta_projectors_base.hpp.

◆ beta_chunks_

template<typename T >
std::vector<beta_chunk_t> const& sirius::Beta_projector_generator< T >::beta_chunks_
private

Chunk descriptors.

Definition at line 222 of file beta_projectors_base.hpp.

◆ gkvec_

template<typename T >
fft::Gvec const& sirius::Beta_projector_generator< T >::gkvec_
private

G+k vectors.

Definition at line 224 of file beta_projectors_base.hpp.

◆ gkvec_coord_

template<typename T >
sddk::mdarray<double, 2> const& sirius::Beta_projector_generator< T >::gkvec_coord_
private

Coordinates of G+k vectors.

Definition at line 226 of file beta_projectors_base.hpp.

◆ num_gkvec_loc_

template<typename T >
int sirius::Beta_projector_generator< T >::num_gkvec_loc_
private

Local number of G+k vectors.

Definition at line 228 of file beta_projectors_base.hpp.

◆ max_num_beta_

template<typename T >
int sirius::Beta_projector_generator< T >::max_num_beta_
private

Maximum number of beta-projectors.

Definition at line 230 of file beta_projectors_base.hpp.


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