Commit 1db32b75 authored by Quentin Khan's avatar Quentin Khan

Update the adaptive Lagrange kernel to use the new data organisation

 - Change FMM operators signature to take advantage of the new
   layout. The operators only take as parameters the data they may need
   instead of the whole cell. For instance (simplified):

   void M2M(CellClass* parent, CellClass** children);

   becomes

   void M2M(multipole_t*  parent_m,    symbolic_data_t* parent_s,
            multipole_t** children_ms, symbolic_data_t* children_ss);
parent 32972f69
......@@ -111,7 +111,8 @@ public:
template<class SymbolicData>
void P2L(typename CellClass::local_expansion_t* const local,
const SymbolicData * const symb,
const ContainerClass* const particles)
const ContainerClass* const particles,
const SymbolicData * const /*source_symb*/)
{
using ComputeClass = typename ComputeClassDescriptor<FReal>::type;
constexpr std::size_t FRealCount = ComputeClassDescriptor<FReal>::count;
......@@ -187,7 +188,8 @@ public:
template<class SymbolicData>
void M2P(const typename CellClass::multipole_t* const pole,
const SymbolicData* const symb,
ContainerClass* const particles)
ContainerClass* const particles,
const SymbolicData * const /*target_symb*/)
{
using ComputeClass = typename ComputeClassDescriptor<FReal>::type;
constexpr std::size_t FRealCount = ComputeClassDescriptor<FReal>::count;
......@@ -249,27 +251,6 @@ public:
}// NVALS
}
// Previous interface starts here ////////////////////////////////
/**
* \brief Node symbolic data fill-in structure for compatibility with older interface
*/
struct CellData {
std::size_t depth;
std::size_t m_idx;
std::size_t getLevel() const noexcept {
return depth;
}
std::size_t getMortonIndex() const noexcept {
return m_idx;
}
FTreeCoordinate getCoordinate() const noexcept {
return FTreeCoordinate(this->m_idx);
}
};
};
......
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