Commit 3a7e5cc7 authored by Quentin Khan's avatar Quentin Khan
Browse files

FCountKernel: update StarPU interface

Add the symbolic data to P2M, P2L, M2P, L2P operators.
parent 0d7bfc7d
......@@ -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();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment