Mentions légales du service

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

Added kernel 2 et 3

parent c89eae53
No related branches found
No related tags found
No related merge requests found
......@@ -244,6 +244,9 @@ auto run(const int& tree_height, const int& group_size, const std::size_t order,
auto total_height = tree_height;
interpolator_type interpolator(mk_far, order, total_height, box_width);
// auto memory = interpolator.memory_usage();
// std::cout << "memory " << memory << std::endl;
typename FMM_OPERATOR_TYPE::far_field_type far_field(interpolator);
//
near_matrix_kernel_type mk_near{};
......@@ -325,58 +328,45 @@ auto run_general(const int& tree_height, const int& group_size, const std::size_
return run<Dimension, value_type, fmm_operators_type>(tree_height, group_size, order, input_file, output_file,
check, displayCells, displayParticles);
}
else if(kernel == 2)
{ // shift_ln_r
// using far_matrix_kernel_type = scalfmm::matrix_kernels::laplace::ln_2d;
// using near_matrix_kernel_type = scalfmm::matrix_kernels::laplace::grad_ln_2d;
// using near_field_type = scalfmm::operators::near_field_operator<near_matrix_kernel_type>;
// //
// using interpolation_type = interpolator_alias<double, Dimension, far_matrix_kernel_type>;
// // using interpolation_type =
// // scalfmm::interpolation::uniform_interpolator<value_type, Dimension, far_matrix_kernel_type>;
// using far_field_type = scalfmm::operators::far_field_operator<interpolation_type, true>;
// using fmm_operators_type = scalfmm::operators::fmm_operators<near_field_type, far_field_type>;
// return run<Dimension, value_type, fmm_operators_type>(tree_height, group_size, order, input_file, output_file,
// check, displayCells, displayParticles);
}
else if(kernel == 3)
{ // val_grad_one_over_r
using far_matrix_kernel_type = scalfmm::matrix_kernels::laplace::val_grad_one_over_r<2>;
using near_matrix_kernel_type = scalfmm::matrix_kernels::laplace::val_grad_one_over_r<2>;
using near_field_type = scalfmm::operators::near_field_operator<near_matrix_kernel_type>;
//
using interpolation_type = interpolator_alias<double, Dimension, far_matrix_kernel_type>;
// using interpolation_type =
// scalfmm::interpolation::uniform_interpolator<value_type, Dimension, far_matrix_kernel_type>;
using far_field_type = scalfmm::operators::far_field_operator<interpolation_type, false>;
using fmm_operators_type = scalfmm::operators::fmm_operators<near_field_type, far_field_type>;
return run<Dimension, value_type, fmm_operators_type>(tree_height, group_size, order, input_file, output_file,
check, displayCells, displayParticles);
}
else
{
return 0;
std::cout << " kernel < 4" << std::endl;
std::exit(EXIT_FAILURE);
}
// else if (kernel == 2)
// { // shift_ln_r
// using far_matrix_kernel_type =
// scalfmm::matrix_kernels::laplace::ln_2d;
// using near_matrix_kernel_type =
// scalfmm::matrix_kernels::laplace::grad_ln_2d;
// using near_field_type = scalfmm::operators::near_field_operator<
// near_matrix_kernel_type>;
// //
// using interpolation_type =
// scalfmm::interpolation::uniform_interpolator<
// value_type, Dimension, far_matrix_kernel_type>;
// using far_field_type =
// scalfmm::operators::far_field_operator<interpolation_type,
// true>;
// using fmm_operators_type =
// scalfmm::operators::fmm_operators<near_field_type,
// far_field_type>;
// return run<Dimension, value_type, fmm_operators_type>(
// tree_height, group_size, order, input_file, output_file, check,
// displayCells, displayParticles);
// }
// else if (kernel == 3)
// { // val_grad_one_over_r
// using far_matrix_kernel_type =
// scalfmm::matrix_kernels::laplace::val_grad_one_over_r<2>;
// using near_matrix_kernel_type =
// scalfmm::matrix_kernels::laplace::val_grad_one_over_r<2>;
// using near_field_type = scalfmm::operators::near_field_operator<
// near_matrix_kernel_type>;
// //
// using interpolation_type =
// scalfmm::interpolation::uniform_interpolator<
// value_type, Dimension, far_matrix_kernel_type>;
// using far_field_type =
// scalfmm::operators::far_field_operator<interpolation_type,
// false>;
// using fmm_operators_type =
// scalfmm::operators::fmm_operators<near_field_type,
// far_field_type>;
// return run<Dimension, value_type, fmm_operators_type>(
// tree_height, group_size, order, input_file, output_file, check,
// displayCells, displayParticles);
return 0;
}
// scalfmm::matrix_kernels::laplace::one_over_r;
......@@ -426,24 +416,4 @@ auto main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[]) -> int
auto ret = run_general<dimension, value_type>(tree_height, group_size, order, kernel, input_file, output_file,
check, displayCells, displayParticles);
return ret;
}
/*
faux 3d
0 p_tree [0.254212, 0.574017, 0] p_ref [0.254212, 0.574017, 0]
(8108.38 18.5173) 0 p_tree [0.926114, 0.470606, 0] p_ref [0.926114, 0.470606,
0](6937.27 7.06436 ) 0 p_tree [0.725386, 0.777877, 0] p_ref [0.725386,
0.777877,0] (4583.97 15.7301 ) 0 p_tree [0.411987, 0.622132, 0] p_ref
[0.411987,0.622132, 0] (9935.72 16.7617 )
2d
0 p_tree [0.307883, 0.668131] p_ref [0.307883, 0.668131] (5414.29 13.8412 )
0 p_tree [0.173692, 0.734691] p_ref [0.173692, 0.734691] (4656.34 20.3212 )
0 p_tree [0.254212, 0.574017] p_ref [0.254212, 0.574017] (8108.38 18.5173 )
0 p_tree [0.926114, 0.470606] p_ref [0.926114, 0.470606] (6937.27 7.06436 )
0 p_tree [0.725386, 0.777877] p_ref [0.725386, 0.777877] (4583.97 15.7301 )
0 p_tree [0.411987, 0.622132] p_ref [0.411987, 0.622132] (9935.72 16.7617 )
*/
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment