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

Representation of the periodical function on the muffin-tin geometry. More...

#include <periodic_function.hpp>

Public Member Functions

 Periodic_function (Simulation_context const &ctx__, smooth_periodic_function_ptr_t< T > const *rg_ptr__=nullptr)
 Constructor for real-space FFT grid only (PP-PW case). More...
 
 Periodic_function (Simulation_context const &ctx__, std::function< lmax_t(int)> lmax__, splindex_block< atom_index_t > const *spl_atoms__=nullptr, smooth_periodic_function_ptr_t< T > const *rg_ptr__=nullptr, spheric_function_set_ptr_t< T > const *mt_ptr__=nullptr)
 Constructor for interstitial and muffin-tin parts (FP-LAPW case). More...
 
void zero ()
 Zero the function. More...
 
Periodic_function< T > & operator+= (Periodic_function< T > const &g__)
 Add the function. More...
 
Periodic_function< T > & operator*= (T alpha__)
 
std::tuple< T, T, std::vector< T > > integrate () const
 Return total integral, interstitial contribution and muffin-tin contributions. More...
 
void hdf5_write (std::string file_name__, std::string path__) const
 
void hdf5_read (std::string file_name__, std::string path__, sddk::mdarray< int, 2 > const &gvec__)
 
value_rg (r3::vector< T > const &vc) const
 
value (r3::vector< T > const &vc)
 
auto const & ctx () const
 
auto & rg ()
 Return reference to regular space grid component. More...
 
auto const & rg () const
 Return const reference to regular space grid component. More...
 
auto & mt ()
 Return reference to spherical functions component. More...
 
auto const & mt () const
 Return const reference to spherical functions component. More...
 

Private Member Functions

 Periodic_function (const Periodic_function< T > &src)=delete
 
Periodic_function< T > & operator= (const Periodic_function< T > &src)=delete
 

Private Attributes

Simulation_context const & ctx_
 Simulation contex. More...
 
Unit_cell const & unit_cell_
 Alias to unit cell. More...
 
mpi::Communicator const & comm_
 
Smooth_periodic_function< T > rg_component_
 Regular space grid component of the periodic function. More...
 
Spheric_function_set< T, atom_index_tmt_component_
 Muffin-tin part of the periodic function. More...
 
fft::Gvec const & gvec_
 Alias to G-vectors. More...
 

Detailed Description

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

Representation of the periodical function on the muffin-tin geometry.

Inside each muffin-tin the spherical expansion is used:

\[ f({\bf r}) = \sum_{\ell m} f_{\ell m}(r) Y_{\ell m}(\hat {\bf r}) \]

or

\[ f({\bf r}) = \sum_{\ell m} f_{\ell m}(r) R_{\ell m}(\hat {\bf r}) \]

In the interstitial region function is stored on the real-space grid or as a Fourier series:

\[ f({\bf r}) = \sum_{{\bf G}} f({\bf G}) e^{i{\bf G}{\bf r}} \]

Definition at line 51 of file periodic_function.hpp.

Constructor & Destructor Documentation

◆ Periodic_function() [1/2]

template<typename T >
sirius::Periodic_function< T >::Periodic_function ( Simulation_context const &  ctx__,
smooth_periodic_function_ptr_t< T > const *  rg_ptr__ = nullptr 
)
inline

Constructor for real-space FFT grid only (PP-PW case).

Definition at line 80 of file periodic_function.hpp.

◆ Periodic_function() [2/2]

template<typename T >
sirius::Periodic_function< T >::Periodic_function ( Simulation_context const &  ctx__,
std::function< lmax_t(int)>  lmax__,
splindex_block< atom_index_t > const *  spl_atoms__ = nullptr,
smooth_periodic_function_ptr_t< T > const *  rg_ptr__ = nullptr,
spheric_function_set_ptr_t< T > const *  mt_ptr__ = nullptr 
)
inline

Constructor for interstitial and muffin-tin parts (FP-LAPW case).

Definition at line 90 of file periodic_function.hpp.

Member Function Documentation

◆ zero()

template<typename T >
void sirius::Periodic_function< T >::zero ( )
inline

Zero the function.

Definition at line 104 of file periodic_function.hpp.

◆ operator+=()

template<typename T >
Periodic_function< T > & sirius::Periodic_function< T >::operator+= ( Periodic_function< T > const &  g__)
inline

Add the function.

Definition at line 111 of file periodic_function.hpp.

◆ operator*=()

template<typename T >
Periodic_function< T > & sirius::Periodic_function< T >::operator*= ( alpha__)
inline

Definition at line 123 of file periodic_function.hpp.

◆ integrate()

template<typename T >
std::tuple< T, T, std::vector< T > > sirius::Periodic_function< T >::integrate ( ) const
inline

Return total integral, interstitial contribution and muffin-tin contributions.

Definition at line 140 of file periodic_function.hpp.

◆ hdf5_write()

template<typename T >
void sirius::Periodic_function< T >::hdf5_write ( std::string  file_name__,
std::string  path__ 
) const
inline
Todo:
write and read distributed functions

Definition at line 179 of file periodic_function.hpp.

◆ hdf5_read()

template<typename T >
void sirius::Periodic_function< T >::hdf5_read ( std::string  file_name__,
std::string  path__,
sddk::mdarray< int, 2 > const &  gvec__ 
)
inline

Definition at line 194 of file periodic_function.hpp.

◆ value_rg()

template<typename T >
T sirius::Periodic_function< T >::value_rg ( r3::vector< T > const &  vc) const
inline

Definition at line 224 of file periodic_function.hpp.

◆ value()

template<typename T >
T sirius::Periodic_function< T >::value ( r3::vector< T > const &  vc)
inline

Definition at line 235 of file periodic_function.hpp.

◆ ctx()

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

Definition at line 257 of file periodic_function.hpp.

◆ rg() [1/2]

template<typename T >
auto & sirius::Periodic_function< T >::rg ( )
inline

Return reference to regular space grid component.

Definition at line 263 of file periodic_function.hpp.

◆ rg() [2/2]

template<typename T >
auto const & sirius::Periodic_function< T >::rg ( ) const
inline

Return const reference to regular space grid component.

Definition at line 269 of file periodic_function.hpp.

◆ mt() [1/2]

template<typename T >
auto & sirius::Periodic_function< T >::mt ( )
inline

Return reference to spherical functions component.

Definition at line 275 of file periodic_function.hpp.

◆ mt() [2/2]

template<typename T >
auto const & sirius::Periodic_function< T >::mt ( ) const
inline

Return const reference to spherical functions component.

Definition at line 281 of file periodic_function.hpp.

Member Data Documentation

◆ ctx_

template<typename T >
Simulation_context const& sirius::Periodic_function< T >::ctx_
private

Simulation contex.

Definition at line 56 of file periodic_function.hpp.

◆ unit_cell_

template<typename T >
Unit_cell const& sirius::Periodic_function< T >::unit_cell_
private

Alias to unit cell.

Definition at line 59 of file periodic_function.hpp.

◆ comm_

template<typename T >
mpi::Communicator const& sirius::Periodic_function< T >::comm_
private

Definition at line 61 of file periodic_function.hpp.

◆ rg_component_

template<typename T >
Smooth_periodic_function<T> sirius::Periodic_function< T >::rg_component_
private

Regular space grid component of the periodic function.

Definition at line 64 of file periodic_function.hpp.

◆ mt_component_

template<typename T >
Spheric_function_set<T, atom_index_t> sirius::Periodic_function< T >::mt_component_
private

Muffin-tin part of the periodic function.

Definition at line 67 of file periodic_function.hpp.

◆ gvec_

template<typename T >
fft::Gvec const& sirius::Periodic_function< T >::gvec_
private

Alias to G-vectors.

Definition at line 70 of file periodic_function.hpp.


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