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

Base class for beta-projectors, gradient of beta-projectors and strain derivatives of beta-projectors. More...

#include <beta_projectors_base.hpp>

Inherited by sirius::Beta_projectors< T >, sirius::Beta_projectors_gradient< T >, and sirius::Beta_projectors_strain_deriv< T >.

Public Member Functions

 Beta_projectors_base (Simulation_context &ctx__, fft::Gvec const &gkvec__, int N__)
 
Beta_projector_generator< T > make_generator () const
 
Beta_projector_generator< T > make_generator (sddk::device_t pu) const
 
Beta_projector_generator< T > make_generator (sddk::memory_t mem) const
 
auto const & ctx () const
 
auto num_gkvec_loc () const
 
int num_total_beta () const
 
int num_comp () const
 
auto const & unit_cell () const
 
auto & pw_coeffs_t (int ig__, int n__, int j__)
 
auto pw_coeffs_t (int j__)
 
auto const & pw_coeffs_a () const
 
int num_beta_t () const
 
int num_chunks () const
 
int max_num_beta () const
 
int nrows () const
 
const mpi::Communicatorcomm () const
 

Protected Member Functions

void split_in_chunks ()
 Split beta-projectors into chunks. More...
 

Protected Attributes

Simulation_contextctx_
 
fft::Gvec const & gkvec_
 List of G+k vectors. More...
 
sddk::mdarray< double, 2 > gkvec_coord_
 Coordinates of G+k vectors used by GPU kernel. More...
 
int N_
 Number of different components: 1 for beta-projectors, 3 for gradient, 9 for strain derivatives. More...
 
sddk::mdarray< std::complex< T >, 3 > pw_coeffs_t_
 Phase-factor independent coefficients of |beta> functions for atom types. More...
 
bool reallocate_pw_coeffs_t_on_gpu_ {true}
 
sddk::matrix< std::complex< T > > pw_coeffs_a_
 Set of beta PW coefficients for a chunk of atoms. More...
 
sddk::matrix< std::complex< T > > beta_pw_all_atoms_
 Set of beta PW coefficients for all atoms. More...
 
std::vector< beta_chunk_tbeta_chunks_
 
int max_num_beta_
 
int num_total_beta_
 total number of beta-projectors (=number of columns) More...
 
int num_beta_t_
 Total number of beta-projectors among atom types. More...
 

Detailed Description

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

Base class for beta-projectors, gradient of beta-projectors and strain derivatives of beta-projectors.

Template Parameters
TPrecision of beta-projectors (float or double).

Definition at line 282 of file beta_projectors_base.hpp.

Constructor & Destructor Documentation

◆ Beta_projectors_base()

template<typename T >
sirius::Beta_projectors_base< T >::Beta_projectors_base ( Simulation_context ctx__,
fft::Gvec const &  gkvec__,
int  N__ 
)

Definition at line 222 of file beta_projectors_base.cpp.

Member Function Documentation

◆ split_in_chunks()

template<typename T >
void sirius::Beta_projectors_base< T >::split_in_chunks
protected

Split beta-projectors into chunks.

Definition at line 139 of file beta_projectors_base.cpp.

◆ make_generator() [1/3]

template<typename T >
Beta_projector_generator< T > sirius::Beta_projectors_base< T >::make_generator ( ) const
inline

Definition at line 323 of file beta_projectors_base.hpp.

◆ make_generator() [2/3]

template<typename T >
Beta_projector_generator< T > sirius::Beta_projectors_base< T >::make_generator ( sddk::device_t  pu) const
inline

Definition at line 328 of file beta_projectors_base.hpp.

◆ make_generator() [3/3]

template<typename T >
Beta_projector_generator< T > sirius::Beta_projectors_base< T >::make_generator ( sddk::memory_t  mem) const
inline

Definition at line 334 of file beta_projectors_base.hpp.

◆ ctx()

template<typename T >
auto const & sirius::Beta_projectors_base< T >::ctx ( ) const
inline

Definition at line 343 of file beta_projectors_base.hpp.

◆ num_gkvec_loc()

template<typename T >
auto sirius::Beta_projectors_base< T >::num_gkvec_loc ( ) const
inline

Definition at line 348 of file beta_projectors_base.hpp.

◆ num_total_beta()

template<typename T >
int sirius::Beta_projectors_base< T >::num_total_beta ( ) const
inline

Definition at line 353 of file beta_projectors_base.hpp.

◆ num_comp()

template<typename T >
int sirius::Beta_projectors_base< T >::num_comp ( ) const
inline

Definition at line 358 of file beta_projectors_base.hpp.

◆ unit_cell()

template<typename T >
auto const & sirius::Beta_projectors_base< T >::unit_cell ( ) const
inline

Definition at line 363 of file beta_projectors_base.hpp.

◆ pw_coeffs_t() [1/2]

template<typename T >
auto & sirius::Beta_projectors_base< T >::pw_coeffs_t ( int  ig__,
int  n__,
int  j__ 
)
inline

Definition at line 368 of file beta_projectors_base.hpp.

◆ pw_coeffs_t() [2/2]

template<typename T >
auto sirius::Beta_projectors_base< T >::pw_coeffs_t ( int  j__)
inline

Definition at line 373 of file beta_projectors_base.hpp.

◆ pw_coeffs_a()

template<typename T >
auto const & sirius::Beta_projectors_base< T >::pw_coeffs_a ( ) const
inline

Definition at line 378 of file beta_projectors_base.hpp.

◆ num_beta_t()

template<typename T >
int sirius::Beta_projectors_base< T >::num_beta_t ( ) const
inline

Definition at line 383 of file beta_projectors_base.hpp.

◆ num_chunks()

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

Definition at line 388 of file beta_projectors_base.hpp.

◆ max_num_beta()

template<typename T >
int sirius::Beta_projectors_base< T >::max_num_beta ( ) const
inline

Definition at line 393 of file beta_projectors_base.hpp.

◆ nrows()

template<typename T >
int sirius::Beta_projectors_base< T >::nrows ( ) const
inline

Definition at line 398 of file beta_projectors_base.hpp.

◆ comm()

template<typename T >
const mpi::Communicator & sirius::Beta_projectors_base< T >::comm ( ) const
inline

Definition at line 403 of file beta_projectors_base.hpp.

Member Data Documentation

◆ ctx_

template<typename T >
Simulation_context& sirius::Beta_projectors_base< T >::ctx_
protected

Definition at line 285 of file beta_projectors_base.hpp.

◆ gkvec_

template<typename T >
fft::Gvec const& sirius::Beta_projectors_base< T >::gkvec_
protected

List of G+k vectors.

Definition at line 288 of file beta_projectors_base.hpp.

◆ gkvec_coord_

template<typename T >
sddk::mdarray<double, 2> sirius::Beta_projectors_base< T >::gkvec_coord_
protected

Coordinates of G+k vectors used by GPU kernel.

Definition at line 291 of file beta_projectors_base.hpp.

◆ N_

template<typename T >
int sirius::Beta_projectors_base< T >::N_
protected

Number of different components: 1 for beta-projectors, 3 for gradient, 9 for strain derivatives.

Definition at line 294 of file beta_projectors_base.hpp.

◆ pw_coeffs_t_

template<typename T >
sddk::mdarray<std::complex<T>, 3> sirius::Beta_projectors_base< T >::pw_coeffs_t_
protected

Phase-factor independent coefficients of |beta> functions for atom types.

Definition at line 297 of file beta_projectors_base.hpp.

◆ reallocate_pw_coeffs_t_on_gpu_

template<typename T >
bool sirius::Beta_projectors_base< T >::reallocate_pw_coeffs_t_on_gpu_ {true}
protected

Definition at line 299 of file beta_projectors_base.hpp.

◆ pw_coeffs_a_

template<typename T >
sddk::matrix<std::complex<T> > sirius::Beta_projectors_base< T >::pw_coeffs_a_
protected

Set of beta PW coefficients for a chunk of atoms.

Definition at line 302 of file beta_projectors_base.hpp.

◆ beta_pw_all_atoms_

template<typename T >
sddk::matrix<std::complex<T> > sirius::Beta_projectors_base< T >::beta_pw_all_atoms_
protected

Set of beta PW coefficients for all atoms.

Definition at line 305 of file beta_projectors_base.hpp.

◆ beta_chunks_

template<typename T >
std::vector<beta_chunk_t> sirius::Beta_projectors_base< T >::beta_chunks_
protected

Definition at line 307 of file beta_projectors_base.hpp.

◆ max_num_beta_

template<typename T >
int sirius::Beta_projectors_base< T >::max_num_beta_
protected

Definition at line 309 of file beta_projectors_base.hpp.

◆ num_total_beta_

template<typename T >
int sirius::Beta_projectors_base< T >::num_total_beta_
protected

total number of beta-projectors (=number of columns)

Definition at line 312 of file beta_projectors_base.hpp.

◆ num_beta_t_

template<typename T >
int sirius::Beta_projectors_base< T >::num_beta_t_
protected

Total number of beta-projectors among atom types.

Definition at line 315 of file beta_projectors_base.hpp.


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