SIRIUS 7.5.0
Electronic structure library and applications
|
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__) |
Definition at line 12 of file spheric_function_set.hpp.
|
inline |
Definition at line 57 of file spheric_function_set.hpp.
|
inline |
Constructor for all atoms.
Definition at line 62 of file spheric_function_set.hpp.
|
inline |
Constructor for a subset of atoms.
Definition at line 81 of file spheric_function_set.hpp.
|
inlineprivate |
Definition at line 29 of file spheric_function_set.hpp.
|
inline |
Definition at line 97 of file spheric_function_set.hpp.
|
inline |
Definition at line 102 of file spheric_function_set.hpp.
|
inline |
Definition at line 107 of file spheric_function_set.hpp.
|
inline |
Definition at line 112 of file spheric_function_set.hpp.
|
inline |
Definition at line 117 of file spheric_function_set.hpp.
|
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.
|
inline |
Definition at line 140 of file spheric_function_set.hpp.
|
private |
Pointer to the unit cell.
Definition at line 16 of file spheric_function_set.hpp.
|
private |
Text label of the function set.
Definition at line 18 of file spheric_function_set.hpp.
|
private |
List of atoms for which the spherical expansion is defined.
Definition at line 20 of file spheric_function_set.hpp.
|
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.
|
private |
List of spheric functions.
Definition at line 25 of file spheric_function_set.hpp.
|
private |
Definition at line 27 of file spheric_function_set.hpp.