Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <cstddef>
7 : #include <string>
8 : #include <variant>
9 : #include <vector>
10 :
11 : #include "Domain/CoordinateMaps/Distribution.hpp"
12 : #include "Options/Context.hpp"
13 : #include "Utilities/Gsl.hpp"
14 :
15 : namespace domain::creators {
16 : /*!
17 : * \brief Given info about the radial distribution, set the number of shells and
18 : * the distribution for each shell.
19 : *
20 : * \details This is common code that all domain creators can use.
21 : */
22 1 : void set_shell_distribution(
23 : gsl::not_null<size_t*> number_of_shells,
24 : gsl::not_null<std::vector<domain::CoordinateMaps::Distribution>*>
25 : radial_distribution,
26 : const std::vector<double>& radial_partitioning,
27 : const std::variant<domain::CoordinateMaps::Distribution,
28 : std::vector<domain::CoordinateMaps::Distribution>>&
29 : input_radial_distribution,
30 : double innermost_shell_radius, double outermost_shell_radius,
31 : const std::string& innermost_radius_name,
32 : const std::string& outermost_radius_name,
33 : const Options::Context& context = {});
34 : } // namespace domain::creators
|