ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ModuleBase::SphericalBesselTransformer::Impl Class Reference
Collaboration diagram for ModuleBase::SphericalBesselTransformer::Impl:

Public Member Functions

 Impl (const bool cache_enabled=false)
 
 ~Impl ()
 
 Impl (Impl const &)=delete
 
 Impl (Impl &&)=delete
 
Imploperator= (Impl const &)=delete
 
Imploperator= (Impl &&)=delete
 
void radrfft (const int l, const int ngrid, const double cutoff, const double *const in, double *const out, const int p=0)
 
void direct (const int l, const int ngrid_in, const double *const grid_in, const double *const in, const int ngrid_out, const double *const grid_out, double *const out, const int p=0)
 
size_t heap_usage () const
 
void clear ()
 

Private Member Functions

void _rfft_prepare (const int n)
 buffer allocation and plan creation for in-place real-input FFT
 
void _rfft_clear ()
 clear the FFTW plan and buffer
 
void _tabulate (const int l, const int ngrid_in, const double *const grid_in, const int ngrid_out, const double *const grid_out)
 tabulate spherical Bessel function on the mesh grid
 
void _table_clear ()
 clear the tabulated jl
 

Private Attributes

double * f_ = nullptr
 buffer used for in-place real-input FFT
 
fftw_plan rfft_plan_ = nullptr
 FFTW plan.
 
int sz_planned_ = 0
 size of the planned FFT
 
const unsigned fftw_plan_flag_
 planner flag used to create rfft_plan_
 
const bool cache_enabled_ = false
 if true, jl values used in numerical integration will be cached
 
int l_ = -1
 order of the cached spherical Bessel function
 
std::vector< double > grid_in_
 cached input grid
 
std::vector< double > grid_out_
 cached output grid
 
std::vector< double > jl_
 cached spherical Bessel function values
 

Constructor & Destructor Documentation

◆ Impl() [1/3]

ModuleBase::SphericalBesselTransformer::Impl::Impl ( const bool  cache_enabled = false)

◆ ~Impl()

ModuleBase::SphericalBesselTransformer::Impl::~Impl ( )
inline
Here is the call graph for this function:

◆ Impl() [2/3]

ModuleBase::SphericalBesselTransformer::Impl::Impl ( Impl const &  )
delete

◆ Impl() [3/3]

ModuleBase::SphericalBesselTransformer::Impl::Impl ( Impl &&  )
delete

Member Function Documentation

◆ _rfft_clear()

void ModuleBase::SphericalBesselTransformer::Impl::_rfft_clear ( )
private

clear the FFTW plan and buffer

Here is the caller graph for this function:

◆ _rfft_prepare()

void ModuleBase::SphericalBesselTransformer::Impl::_rfft_prepare ( const int  n)
private

buffer allocation and plan creation for in-place real-input FFT

◆ _table_clear()

void ModuleBase::SphericalBesselTransformer::Impl::_table_clear ( )
private

clear the tabulated jl

◆ _tabulate()

void ModuleBase::SphericalBesselTransformer::Impl::_tabulate ( const int  l,
const int  ngrid_in,
const double *const  grid_in,
const int  ngrid_out,
const double *const  grid_out 
)
private

tabulate spherical Bessel function on the mesh grid

Here is the call graph for this function:

◆ clear()

void ModuleBase::SphericalBesselTransformer::Impl::clear ( )

◆ direct()

void ModuleBase::SphericalBesselTransformer::Impl::direct ( const int  l,
const int  ngrid_in,
const double *const  grid_in,
const double *const  in,
const int  ngrid_out,
const double *const  grid_out,
double *const  out,
const int  p = 0 
)
Here is the call graph for this function:

◆ heap_usage()

size_t ModuleBase::SphericalBesselTransformer::Impl::heap_usage ( ) const

◆ operator=() [1/2]

Impl & ModuleBase::SphericalBesselTransformer::Impl::operator= ( Impl &&  )
delete

◆ operator=() [2/2]

Impl & ModuleBase::SphericalBesselTransformer::Impl::operator= ( Impl const &  )
delete

◆ radrfft()

void ModuleBase::SphericalBesselTransformer::Impl::radrfft ( const int  l,
const int  ngrid,
const double  cutoff,
const double *const  in,
double *const  out,
const int  p = 0 
)
Here is the call graph for this function:

Member Data Documentation

◆ cache_enabled_

const bool ModuleBase::SphericalBesselTransformer::Impl::cache_enabled_ = false
private

if true, jl values used in numerical integration will be cached

◆ f_

double* ModuleBase::SphericalBesselTransformer::Impl::f_ = nullptr
private

buffer used for in-place real-input FFT

◆ fftw_plan_flag_

const unsigned ModuleBase::SphericalBesselTransformer::Impl::fftw_plan_flag_
private

planner flag used to create rfft_plan_

◆ grid_in_

std::vector<double> ModuleBase::SphericalBesselTransformer::Impl::grid_in_
private

cached input grid

◆ grid_out_

std::vector<double> ModuleBase::SphericalBesselTransformer::Impl::grid_out_
private

cached output grid

◆ jl_

std::vector<double> ModuleBase::SphericalBesselTransformer::Impl::jl_
private

cached spherical Bessel function values

◆ l_

int ModuleBase::SphericalBesselTransformer::Impl::l_ = -1
private

order of the cached spherical Bessel function

◆ rfft_plan_

fftw_plan ModuleBase::SphericalBesselTransformer::Impl::rfft_plan_ = nullptr
private

FFTW plan.

◆ sz_planned_

int ModuleBase::SphericalBesselTransformer::Impl::sz_planned_ = 0
private

size of the planned FFT


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