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