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/Strahlkorper/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
|