SIRIUS 7.5.0
Electronic structure library and applications
|
Representation of a smooth (Fourier-transformable) periodic function. More...
#include <smooth_periodic_function.hpp>
Public Member Functions | |
Smooth_periodic_function () | |
Default constructor. More... | |
Smooth_periodic_function (fft::spfft_transform_type< T > const &spfft__, std::shared_ptr< fft::Gvec_fft > gvecp__, smooth_periodic_function_ptr_t< T > const *sptr__=nullptr) | |
Constructor. More... | |
Smooth_periodic_function (Smooth_periodic_function< T > &&src__)=default | |
Smooth_periodic_function< T > & | operator= (Smooth_periodic_function< T > &&src__)=default |
void | zero () |
Zero the values on the regular real-space grid and plane-wave coefficients. More... | |
T const & | value (int ir__) const |
T & | value (int ir__) |
auto | values () -> sddk::mdarray< T, 1 > & |
auto | values () const -> const sddk::mdarray< T, 1 > & |
auto | f_pw_local (int ig__) -> std::complex< T > & |
auto | f_pw_local (int ig__) const -> const std::complex< T > & |
auto | f_pw_local () -> sddk::mdarray< std::complex< T >, 1 > & |
auto | f_pw_local () const -> const sddk::mdarray< std::complex< T >, 1 > & |
auto & | f_pw_fft (int ig__) |
auto | f_0 () const |
Return plane-wave coefficient for G=0 component. More... | |
auto & | spfft () |
auto const & | spfft () const |
auto & | gvec () const |
auto | gvec_fft () const |
void | fft_transform (int direction__) |
auto | gather_f_pw () const |
void | scatter_f_pw (std::vector< std::complex< T > > const &f_pw__) |
Smooth_periodic_function< T > & | operator+= (Smooth_periodic_function< T > const &rhs__) |
Smooth_periodic_function< T > & | operator*= (T alpha__) |
T | checksum_rg () const |
auto | checksum_pw () const |
uint64_t | hash_f_pw () const |
uint64_t | hash_f_rg () const |
Protected Member Functions | |
void | gather_f_pw_fft () |
Gather plane-wave coefficients for the subsequent FFT call. More... | |
Smooth_periodic_function (Smooth_periodic_function< T > const &src__)=delete | |
Smooth_periodic_function< T > & | operator= (Smooth_periodic_function< T > const &src__)=delete |
Protected Attributes | |
fft::spfft_transform_type< T > * | spfft_ {nullptr} |
FFT driver. More... | |
std::shared_ptr< fft::Gvec_fft > | gvecp_ {nullptr} |
Distribution of G-vectors. More... | |
sddk::mdarray< T, 1 > | f_rg_ |
Function on the regular real-space grid. More... | |
sddk::mdarray< std::complex< T >, 1 > | f_pw_local_ |
Local set of plane-wave expansion coefficients. More... | |
sddk::mdarray< std::complex< T >, 1 > | f_pw_fft_ |
Storage of the PW coefficients for the FFT transformation. More... | |
Friends | |
template<typename F > | |
void | copy (Smooth_periodic_function< F > const &src__, Smooth_periodic_function< F > &dest__) |
template<typename F > | |
void | scale (F alpha__, Smooth_periodic_function< F > &x__) |
template<typename F > | |
void | axpy (F alpha__, Smooth_periodic_function< F > const &x__, Smooth_periodic_function< F > &y__) |
Representation of a smooth (Fourier-transformable) periodic function.
The class is designed to handle periodic functions such as density or potential, defined on a regular FFT grid. The following functionality is provided:
Definition at line 81 of file smooth_periodic_function.hpp.
|
inline |
Default constructor.
Definition at line 122 of file smooth_periodic_function.hpp.
|
inline |
Constructor.
Definition at line 127 of file smooth_periodic_function.hpp.
|
inlineprotected |
Gather plane-wave coefficients for the subsequent FFT call.
Definition at line 100 of file smooth_periodic_function.hpp.
|
inline |
Zero the values on the regular real-space grid and plane-wave coefficients.
Definition at line 167 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 173 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 178 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 183 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 188 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 193 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 198 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 203 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 208 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 213 of file smooth_periodic_function.hpp.
|
inline |
Return plane-wave coefficient for G=0 component.
Definition at line 219 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 229 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 235 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 241 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 247 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 252 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 287 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 297 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 303 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 319 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 335 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 342 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 349 of file smooth_periodic_function.hpp.
|
inline |
Definition at line 361 of file smooth_periodic_function.hpp.
|
protected |
FFT driver.
Definition at line 85 of file smooth_periodic_function.hpp.
|
protected |
Distribution of G-vectors.
Definition at line 88 of file smooth_periodic_function.hpp.
|
protected |
Function on the regular real-space grid.
Definition at line 91 of file smooth_periodic_function.hpp.
|
protected |
Local set of plane-wave expansion coefficients.
Definition at line 94 of file smooth_periodic_function.hpp.
|
protected |
Storage of the PW coefficients for the FFT transformation.
Definition at line 97 of file smooth_periodic_function.hpp.