Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 3b4cf9d2 authored by Olivier COULAUD's avatar Olivier COULAUD
Browse files

We have a loss of precision with the low-rank approximation in uniform and...

We have a loss of precision with the low-rank approximation in uniform and Chebyshev compared to dense and fft
parent af6f12c1
No related branches found
No related tags found
No related merge requests found
Pipeline #1122097 skipped
......@@ -104,6 +104,7 @@ auto run(ParserType const& parser) -> void
using near_field_type = scalfmm::operators::near_field_operator<matrix_kernel_type>;
using interpolator_type = scalfmm::interpolation::interpolator<value_type, dimension, matrix_kernel_type,
scalfmm::options::uniform_<scalfmm::options::fft_>>;
// scalfmm::options::chebyshev_<scalfmm::options::low_rank_>>;
using far_field_type = scalfmm::operators::far_field_operator<interpolator_type>;
using fmm_operator_type = scalfmm::operators::fmm_operators<near_field_type, far_field_type>;
......@@ -157,8 +158,8 @@ auto run(ParserType const& parser) -> void
near_field_type near_field{};
// a reference on the matrix_kernel of the near_field
auto near_mk = near_field.matrix_kernel();
// near_mk.set_coeff(2.0);
auto& near_mk = near_field.matrix_kernel();
near_mk.set_coeff(2.0);
// build the approximation used in the near field
interpolator_type interpolator(near_mk, order, tree_height, box.width(0));
......@@ -166,6 +167,11 @@ auto run(ParserType const& parser) -> void
// construct the fmm operator
fmm_operator_type fmm_operator(near_field, far_field);
std::cout << cpp_tools::colors::blue << "Fmm with kernels: " << std::endl
<< " near " << near_mk.name() << " mutual " << std::boolalpha << near_field.mutual() << std::endl
<< " far " << far_field.approximation().matrix_kernel().name() << std::endl
<< cpp_tools::colors::reset;
const std::size_t group_size{10}; // the number of cells and leaf grouped in the tree
group_tree_type tree(tree_height, order, box, group_size, group_size, container);
......@@ -178,7 +184,7 @@ auto run(ParserType const& parser) -> void
#ifdef PART_VAR
scalfmm::component::for_each_leaf(std::cbegin(tree), std::cend(tree),
[&container, &container_debug, &error](auto const& leaf)
[&container, &error](auto const& leaf)
{
// loop on the particles of the leaf
for(auto const p_ref: leaf)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment