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 : #include <vector> 10 : 11 : #include "DataStructures/DataVector.hpp" 12 : 13 : /*! 14 : * \brief Functionality for evolving a ringdown following a compact-binary 15 : * merger. 16 : */ 17 1 : namespace evolution::Ringdown { 18 : /*! 19 : * \brief Transform `Strahlkorper` coefs to ringdown distorted frame. 20 : * 21 : * \details Reads Strahlkorper coefficients (assumed to be in the inertial 22 : * frame) from a file, then transforms them into the 23 : * ringdown distorted frame defined by the expansion and rotation maps 24 : * specified by `exp_func_and_2_derivs`, `exp_outer_bdry_func_and_2_derivs`, 25 : * and `rot_func_and_2_derivs`, which correspond to the ringdown frame's 26 : * expansion and rotation maps at the time given by `match_time`, and by 27 : * `settling_timescale`, the timescale for the maps to settle to constant 28 : * values. Only Strahlkorpers within `requested_number_of_times_from_end` times 29 : * from the final time are returned. This function is used to transition 30 : * from inspiral to ringdown; in this case, the inertial-frame Strahlkorper 31 : * is the common apparent horizon from a binary-black-hole inspiral; 32 : * the ringdown-distorted-frame coefficients are used to initialize 33 : * the shape map for the ringdown domain. 34 : */ 35 1 : std::vector<DataVector> strahlkorper_coefs_in_ringdown_distorted_frame( 36 : const std::string& path_to_horizons_h5, 37 : const std::string& surface_subfile_name, 38 : size_t requested_number_of_times_from_end, double match_time, 39 : double settling_timescale, 40 : const std::array<double, 3>& exp_func_and_2_derivs, 41 : const std::array<double, 3>& exp_outer_bdry_func_and_2_derivs, 42 : const std::array<std::array<double, 4>, 3>& rot_func_and_2_derivs); 43 : } // namespace evolution::Ringdown