Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <array> 7 : #include <cstddef> 8 : #include <string> 9 : 10 : #include "NumericalAlgorithms/SphericalHarmonics/AngularOrdering.hpp" 11 : #include "NumericalAlgorithms/SphericalHarmonics/Strahlkorper.hpp" 12 : 13 : namespace ylm { 14 : /// @{ 15 : /*! 16 : * \brief Writes the collocation points of a `ylm::Strahlkorper` to an output 17 : * text file. 18 : * 19 : * \details The ordering of the points can be either the typical 20 : * `ylm::Spherepack` ordering or CCE ordering that works with libsharp. Also, an 21 : * error will occur if the output file already exists, but the output file can 22 : * be overwritten with the \p overwrite_file option. 23 : * 24 : * The second overload will construct a spherical `ylm::Strahlkorper` with the 25 : * given \p radius, \p l_max, and \p center. 26 : * 27 : * The output file format will be as follows with no comment or header lines, 28 : * a space as the delimiter, and decimals written in scientific notation: 29 : * 30 : * ``` 31 : * x0 y0 z0 32 : * x1 y1 z1 33 : * x2 y2 z2 34 : * ... 35 : * ``` 36 : */ 37 : template <typename Frame> 38 1 : void write_strahlkorper_coords_to_text_file( 39 : const Strahlkorper<Frame>& strahlkorper, 40 : const std::string& output_file_name, AngularOrdering ordering, 41 : bool overwrite_file = false); 42 : 43 1 : void write_strahlkorper_coords_to_text_file(double radius, size_t l_max, 44 : const std::array<double, 3>& center, 45 : const std::string& output_file_name, 46 : AngularOrdering ordering, 47 : bool overwrite_file = false); 48 : /// @} 49 : } // namespace ylm