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

Public Member Functions

 Spheric_function_set (std::string label__, Unit_cell const &unit_cell__, std::function< lmax_t(int)> lmax__, splindex_block< I > const *spl_atoms__=nullptr, spheric_function_set_ptr_t< T > const *sptr__=nullptr)
 Constructor for all atoms. More...
 
 Spheric_function_set (std::string label__, Unit_cell const &unit_cell__, std::vector< int > atoms__, std::function< lmax_t(int)> lmax__, splindex_block< I > const *spl_atoms__=nullptr)
 Constructor for a subset of atoms. More...
 
auto const & atoms () const
 
auto & operator[] (int ia__)
 
auto const & operator[] (int ia__) const
 
auto const & unit_cell () const
 
void zero ()
 
void sync (splindex_block< I > const &spl_atoms__)
 Synchronize global function. More...
 
Spheric_function_set< T, I > & operator+= (Spheric_function_set< T, I > const &rhs__)
 

Private Member Functions

void init (std::function< lmax_t(int)> lmax__, spheric_function_set_ptr_t< T > const *sptr__=nullptr)
 

Private Attributes

Unit_cell const * unit_cell_ {nullptr}
 Pointer to the unit cell. More...
 
std::string label_
 Text label of the function set. More...
 
std::vector< int > atoms_
 List of atoms for which the spherical expansion is defined. More...
 
splindex_block< I > const * spl_atoms_ {nullptr}
 Split the number of atoms between MPI ranks. More...
 
std::vector< Spheric_function< function_domain_t::spectral, T > > func_
 List of spheric functions. More...
 
bool all_atoms_ {false}
 

Friends

template<typename T_ , typename I_ >
T_ inner (Spheric_function_set< T_, I_ > const &f1__, Spheric_function_set< T_, I_ > const &f2__)
 
template<typename T_ , typename I_ >
void copy (Spheric_function_set< T_, I_ > const &src__, Spheric_function_set< T_, I_ > &dest__)
 
template<typename T_ , typename I_ >
void copy (Spheric_function_set< T_, I_ > const &src__, spheric_function_set_ptr_t< T_ > dest__)
 
template<typename T_ , typename I_ >
void copy (spheric_function_set_ptr_t< T_ > src__, Spheric_function_set< T_, I_ > const &dest__)
 
template<typename T_ , typename I_ >
void scale (T_ alpha__, Spheric_function_set< T_, I_ > &x__)
 
template<typename T_ , typename I_ >
void axpy (T_ alpha__, Spheric_function_set< T_, I_ > const &x__, Spheric_function_set< T_, I_ > &y__)
 

Detailed Description

template<typename T, typename I>
class sirius::Spheric_function_set< T, I >

Definition at line 12 of file spheric_function_set.hpp.

Constructor & Destructor Documentation

◆ Spheric_function_set() [1/3]

template<typename T , typename I >
sirius::Spheric_function_set< T, I >::Spheric_function_set ( )
inline

Definition at line 57 of file spheric_function_set.hpp.

◆ Spheric_function_set() [2/3]

template<typename T , typename I >
sirius::Spheric_function_set< T, I >::Spheric_function_set ( std::string  label__,
Unit_cell const &  unit_cell__,
std::function< lmax_t(int)>  lmax__,
splindex_block< I > const *  spl_atoms__ = nullptr,
spheric_function_set_ptr_t< T > const *  sptr__ = nullptr 
)
inline

Constructor for all atoms.

Definition at line 62 of file spheric_function_set.hpp.

◆ Spheric_function_set() [3/3]

template<typename T , typename I >
sirius::Spheric_function_set< T, I >::Spheric_function_set ( std::string  label__,
Unit_cell const &  unit_cell__,
std::vector< int >  atoms__,
std::function< lmax_t(int)>  lmax__,
splindex_block< I > const *  spl_atoms__ = nullptr 
)
inline

Constructor for a subset of atoms.

Definition at line 81 of file spheric_function_set.hpp.

Member Function Documentation

◆ init()

template<typename T , typename I >
void sirius::Spheric_function_set< T, I >::init ( std::function< lmax_t(int)>  lmax__,
spheric_function_set_ptr_t< T > const *  sptr__ = nullptr 
)
inlineprivate

Definition at line 29 of file spheric_function_set.hpp.

◆ atoms()

template<typename T , typename I >
auto const & sirius::Spheric_function_set< T, I >::atoms ( ) const
inline

Definition at line 97 of file spheric_function_set.hpp.

◆ operator[]() [1/2]

template<typename T , typename I >
auto & sirius::Spheric_function_set< T, I >::operator[] ( int  ia__)
inline

Definition at line 102 of file spheric_function_set.hpp.

◆ operator[]() [2/2]

template<typename T , typename I >
auto const & sirius::Spheric_function_set< T, I >::operator[] ( int  ia__) const
inline

Definition at line 107 of file spheric_function_set.hpp.

◆ unit_cell()

template<typename T , typename I >
auto const & sirius::Spheric_function_set< T, I >::unit_cell ( ) const
inline

Definition at line 112 of file spheric_function_set.hpp.

◆ zero()

template<typename T , typename I >
void sirius::Spheric_function_set< T, I >::zero ( )
inline

Definition at line 117 of file spheric_function_set.hpp.

◆ sync()

template<typename T , typename I >
void sirius::Spheric_function_set< T, I >::sync ( splindex_block< I > const &  spl_atoms__)
inline

Synchronize global function.

Assuming that each MPI rank was handling part of the global spherical function, broadcast data from each rank. As a result, each rank stores a full and identical copy of global spherical function.

Definition at line 131 of file spheric_function_set.hpp.

◆ operator+=()

template<typename T , typename I >
Spheric_function_set< T, I > & sirius::Spheric_function_set< T, I >::operator+= ( Spheric_function_set< T, I > const &  rhs__)
inline

Definition at line 140 of file spheric_function_set.hpp.

Member Data Documentation

◆ unit_cell_

template<typename T , typename I >
Unit_cell const* sirius::Spheric_function_set< T, I >::unit_cell_ {nullptr}
private

Pointer to the unit cell.

Definition at line 16 of file spheric_function_set.hpp.

◆ label_

template<typename T , typename I >
std::string sirius::Spheric_function_set< T, I >::label_
private

Text label of the function set.

Definition at line 18 of file spheric_function_set.hpp.

◆ atoms_

template<typename T , typename I >
std::vector<int> sirius::Spheric_function_set< T, I >::atoms_
private

List of atoms for which the spherical expansion is defined.

Definition at line 20 of file spheric_function_set.hpp.

◆ spl_atoms_

template<typename T , typename I >
splindex_block<I> const* sirius::Spheric_function_set< T, I >::spl_atoms_ {nullptr}
private

Split the number of atoms between MPI ranks.

If the pointer is null, spheric functions set is treated as global, without MPI distribution

Definition at line 23 of file spheric_function_set.hpp.

◆ func_

template<typename T , typename I >
std::vector<Spheric_function<function_domain_t::spectral, T> > sirius::Spheric_function_set< T, I >::func_
private

List of spheric functions.

Definition at line 25 of file spheric_function_set.hpp.

◆ all_atoms_

template<typename T , typename I >
bool sirius::Spheric_function_set< T, I >::all_atoms_ {false}
private

Definition at line 27 of file spheric_function_set.hpp.


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