diff --git a/src/Domain/Creators/Sphere.cpp b/src/Domain/Creators/Sphere.cpp index 500a5583eb241..7d01fcc2db9ce 100644 --- a/src/Domain/Creators/Sphere.cpp +++ b/src/Domain/Creators/Sphere.cpp @@ -278,10 +278,9 @@ Sphere::Sphere( : radial_partitioning_[0], // Translation inner radius radial_partitioning_.empty() - ? outer_radius_ - : radial_partitioning_.back(), - // Translation outer radius - outer_radius_); + ? std::nullopt + : std::optional>{ + {radial_partitioning_.back(), outer_radius_}}); } } } diff --git a/src/Domain/Creators/SphereTimeDependentMaps.cpp b/src/Domain/Creators/SphereTimeDependentMaps.cpp index e81993aaf3759..d0c8ba79313df 100644 --- a/src/Domain/Creators/SphereTimeDependentMaps.cpp +++ b/src/Domain/Creators/SphereTimeDependentMaps.cpp @@ -116,7 +116,9 @@ TimeDependentMapOptions::create_functions_of_time( std::make_unique>( initial_time_, std::array{ - {{3, 0.0}, initial_translation_velocity_temp, {3, 0.0}}}, + {{3, 0.0}, + std::move(initial_translation_velocity_temp), + {3, 0.0}}}, expiration_times.at(translation_name)); return result; @@ -124,8 +126,8 @@ TimeDependentMapOptions::create_functions_of_time( void TimeDependentMapOptions::build_maps( const std::array& center, const double inner_radius, - const double outer_radius, const double translation_inner_radius, - const double translation_outer_radius) { + const double outer_radius, + std::optional> translation_transition_radii) { std::unique_ptr transition_func = @@ -135,13 +137,14 @@ void TimeDependentMapOptions::build_maps( initial_l_max_, std::move(transition_func), shape_name, size_name}; - if (translation_inner_radius == translation_outer_radius) { + if (translation_transition_radii.has_value()) { // Uniform translation - translation_map_ = TranslationMap{translation_name}; + translation_map_ = TranslationMap{ + translation_name, translation_transition_radii.value().first, + translation_transition_radii.value().second}; } else { // Translation with transition - translation_map_ = TranslationMap{ - translation_name, translation_inner_radius, translation_outer_radius}; + translation_map_ = TranslationMap{translation_name}; } } diff --git a/src/Domain/Creators/SphereTimeDependentMaps.hpp b/src/Domain/Creators/SphereTimeDependentMaps.hpp index 1a0b22e31354f..599acef0cbd52 100644 --- a/src/Domain/Creators/SphereTimeDependentMaps.hpp +++ b/src/Domain/Creators/SphereTimeDependentMaps.hpp @@ -189,10 +189,10 @@ struct TimeDependentMapOptions { * - Shape: `Shape` (with a size function of time) * - Translation: `Translation` */ - void build_maps(const std::array& center, - const double inner_radius, const double outer_radius, - const double translation_inner_radius, - const double translation_outer_radius); + void build_maps( + const std::array& center, const double inner_radius, + const double outer_radius, + std::optional> translation_transition_radii); /*! * \brief This will construct the map from `Frame::Distorted` to diff --git a/tests/Unit/Domain/Creators/Test_SphereTimeDependentMaps.cpp b/tests/Unit/Domain/Creators/Test_SphereTimeDependentMaps.cpp index 9c7143b1e4870..9908a07bb9015 100644 --- a/tests/Unit/Domain/Creators/Test_SphereTimeDependentMaps.cpp +++ b/tests/Unit/Domain/Creators/Test_SphereTimeDependentMaps.cpp @@ -104,9 +104,10 @@ void test(const bool use_non_zero_shape) { .get()) == translation_non_zero); for (const bool include_distorted : make_array(true, false)) { - time_dep_options.build_maps(center, inner_radius, outer_radius, - translation_inner_radius, - translation_outer_radius); + time_dep_options.build_maps( + center, inner_radius, outer_radius, + std::pair{translation_inner_radius, + translation_outer_radius}); const auto grid_to_distorted_map = time_dep_options.grid_to_distorted_map(include_distorted);