Template Class Fmm

Inheritance Relationships

Base Type

Class Documentation

template<typename T>
class exafmm_t::Fmm : public exafmm_t::FmmBase<T>

Public Functions

inline Fmm()
inline Fmm(int p_, int ncrit_, std::string filename_ = std::string())
inline void initialize_matrix()

Setup the sizes of precomputation matrices.

inline void precompute_M2M()

Precompute M2M and L2L.

inline void precompute_check2equiv()

Precompute UC2UE and DC2DE matrices.

inline void precompute_M2L(std::ofstream &file)

Precompute M2L.

inline void save_matrix(std::ofstream &file)

Save precomputation matrices.

inline void load_matrix()

Check and load precomputation matrices.

inline void precompute()

Precompute.

inline virtual void P2M(NodePtrs<T> &leafs)

P2M operator.

inline virtual void L2P(NodePtrs<T> &leafs)

L2P operator.

inline virtual void M2M(Node<T> *node)

M2M operator.

inline virtual void L2L(Node<T> *node)

L2L operator.

inline void M2L_setup(NodePtrs<T> &nonleafs)
inline void hadamard_product(std::vector<size_t> &interaction_count_offset, std::vector<size_t> &interaction_offset_f, AlignedVec &fft_in, AlignedVec &fft_out, std::vector<AlignedVec> &matrix_M2L)
inline void fft_up_equiv(std::vector<size_t> &fft_offset, std::vector<T> &all_up_equiv, AlignedVec &fft_in)
inline void ifft_dn_check(std::vector<size_t> &ifft_offset, AlignedVec &fft_out, std::vector<T> &all_dn_equiv)
inline virtual void M2L(Nodes<T> &nodes)

M2L operator.

template<>
void precompute_check2equiv()

Below are member function specializations

template<>
void precompute_check2equiv()
template<>
void precompute_M2L(std::ofstream &file)

member function specialization for real type

template<>
void precompute_M2L(std::ofstream &file)

member function specialization for complex type

template<>
void fft_up_equiv(std::vector<size_t> &fft_offset, RealVec &all_up_equiv, AlignedVec &fft_in)
template<>
void fft_up_equiv(std::vector<size_t> &fft_offset, ComplexVec &all_up_equiv, AlignedVec &fft_in)
template<>
void ifft_dn_check(std::vector<size_t> &ifft_offset, AlignedVec &fft_out, RealVec &all_dn_equiv)
template<>
void ifft_dn_check(std::vector<size_t> &ifft_offset, AlignedVec &fft_out, ComplexVec &all_dn_equiv)

Public Members

std::vector<std::vector<T>> matrix_UC2E_U
std::vector<std::vector<T>> matrix_UC2E_V
std::vector<std::vector<T>> matrix_DC2E_U
std::vector<std::vector<T>> matrix_DC2E_V
std::vector<std::vector<std::vector<T>>> matrix_M2M
std::vector<std::vector<std::vector<T>>> matrix_L2L
std::vector<M2LData> m2ldata