diff --git a/Tests/noDist/Adaptive/FCountKernel.hpp b/Tests/noDist/Adaptive/FCountKernel.hpp index ecc98a6b5c7076f390682b00375e9da10a66e040..919322b3efb24cf4fd373b587e390e7c7d10e716 100644 --- a/Tests/noDist/Adaptive/FCountKernel.hpp +++ b/Tests/noDist/Adaptive/FCountKernel.hpp @@ -121,7 +121,7 @@ struct FCountKernel { void P2M(CellClass* const leaf_data, const ContainerClass* const source_particle_container) { - this->P2M(&(leaf_data->multipole), source_particle_container); + this->P2M(&(leaf_data->multipole), (void*)nullptr, source_particle_container); } /** \brief Particle to multipole operator @@ -131,7 +131,9 @@ struct FCountKernel { * \param leaf_multipole Leaf multipole * \param source_particle_container Leaf particle container */ + template<class Symb> void P2M(typename CellClass::multipole_t* const leaf_multipole, + const Symb* const /* leaf_symbolic_data */, const ContainerClass* const source_particle_container) { mtx.lock(); @@ -232,7 +234,7 @@ struct FCountKernel { { std::array<typename CellClass::local_expansion_t*, child_count> child_local_exps; std::transform(child_data, child_data+child_count, child_local_exps.data(), - [](CellClass * data) {return &(data->local_expansion);}); + [](CellClass * data) {return data ? &(data->local_expansion) : nullptr;}); this->L2L(&(node_data->local_expansion), child_local_exps.data(), level); } @@ -261,10 +263,12 @@ struct FCountKernel { void P2L(CellClass* const node_data, const ContainerClass* const source_particle_container) { - this->P2L(&node_data->local_expansion, source_particle_container); + this->P2L(&node_data->local_expansion, (void*)nullptr, source_particle_container); } + template<class Symb> void P2L(typename CellClass::local_expansion_t* const node_local_expansion, + const Symb* const /* node_symbolic_data */, const ContainerClass* const source_particle_container) { mtx.lock(); @@ -283,10 +287,12 @@ struct FCountKernel { void L2P(const CellClass* const leaf_data, ContainerClass* const target_particle_container) { - this->L2P(&leaf_data->local_expansion, target_particle_container); + this->L2P(&leaf_data->local_expansion,(void*)nullptr, target_particle_container); } + template<class Symb> void L2P(const typename CellClass::local_expansion_t* const leaf_local_exp, + const Symb* const /* target_symbolic_data */, ContainerClass* const target_particle_container) { mtx.lock(); @@ -307,10 +313,12 @@ struct FCountKernel { void M2P(const CellClass* const node_data, ContainerClass* const target_particle_container) { - this->M2P(&node_data->multipole, target_particle_container); + this->M2P(&node_data->multipole, (void*)nullptr, target_particle_container); } + template<class Symb> void M2P(const typename CellClass::multipole_t* const node_multipole, + const Symb* const /* node_symbolic_data */, ContainerClass* const target_particle_container) { mtx.lock();