diff --git a/include/scalfmm/algorithms/fmm.hpp b/include/scalfmm/algorithms/fmm.hpp index 9f6395aa49ace748a9ee3115f199228fcfe10004..16ac2d2beda582676a192fab4d3795f06ea07818 100644 --- a/include/scalfmm/algorithms/fmm.hpp +++ b/include/scalfmm/algorithms/fmm.hpp @@ -74,9 +74,13 @@ namespace scalfmm::algorithms inline auto fmm(options::settings<S...> s, TreeType& tree, FmmOperatorsType const& fmmoperators, unsigned int op = operators_to_proceed::all) -> void { - static_assert( - options::support(s, options::_s(options::omp, options::omp_timit, options::seq, options::seq_timit)), - "unsupported fmm algo options!"); + static_assert(options::support(s, options::_s( +#ifdef _OPENMP + + options::omp, options::omp_timit, +#endif + options::seq, options::seq_timit)), + "unsupported fmm algo options!"); if constexpr(options::has(s, options::seq, options::seq_timit)) { using inner_settings = typename decltype(s)::inner_settings; @@ -117,9 +121,12 @@ namespace scalfmm::algorithms operators::fmm_operators<NearFieldType, FarFieldType> const& fmmoperators, unsigned int op = operators_to_proceed::all) -> void { - static_assert( - options::support(s, options::_s(options::omp, options::omp_timit, options::seq, options::seq_timit)), - "unsupported fmm algo options!"); + static_assert(options::support(s, options::_s( +#ifdef _OPENMP + options::omp, options::omp_timit, +#endif + options::seq, options::seq_timit)), + "unsupported fmm algo options!"); if constexpr(options::has(s, options::seq, options::seq_timit)) { using inner_settings = typename decltype(s)::inner_settings; diff --git a/include/scalfmm/lists/lists.hpp b/include/scalfmm/lists/lists.hpp index efa0499916b9c10c4ab31829350e55934832aa3f..34a4c858c26d8a5e9ec2dd63cba007d8a48fbec5 100644 --- a/include/scalfmm/lists/lists.hpp +++ b/include/scalfmm/lists/lists.hpp @@ -3,7 +3,8 @@ // File : scalfmm/lists/lists.hpp // -------------------------------- #pragma once - +#ifdef _OPENMP #include "scalfmm/lists/omp.hpp" +#endif #include "scalfmm/lists/policies.hpp" #include "scalfmm/lists/sequential.hpp" diff --git a/include/scalfmm/options/options.hpp b/include/scalfmm/options/options.hpp index 96747683582919ffe0ad0899f8bfa8bd2a450db8..60000da32ac8f08395b0e5fc28834865bb4bbf90 100644 --- a/include/scalfmm/options/options.hpp +++ b/include/scalfmm/options/options.hpp @@ -114,6 +114,7 @@ namespace scalfmm::options using inner_settings = settings<S...>; static constexpr auto value() noexcept -> std::string_view { return "seq"; }; }; +#ifdef _OPENMP /** * @brief A specific compound option for the 'OpenMP-based' case that combines multiple settings. @@ -131,7 +132,7 @@ namespace scalfmm::options using inner_settings = settings<S...>; static constexpr auto value() noexcept -> std::string_view { return "omp"; }; }; - +#endif /** * @brief A specific option to time each pass of the FMM algorithm. */ @@ -244,6 +245,7 @@ namespace scalfmm::options * @brief Predefined static option to compress the M2L interaction matrices. */ static constexpr auto low_rank = low_rank_{}; +#ifdef _OPENMP /** * @brief Predefined static option to use the OpenMP-based algorithm. @@ -254,7 +256,7 @@ namespace scalfmm::options * @brief Predefined static option to use the OpenMP-based algorithm with each pass is timed. */ static constexpr auto omp_timit = omp_<timit_>{}; - +#endif /** * @brief Predefined static option to use the sequential algorithm. */