10 #include "DataStructures/SpinWeighted.hpp"
12 #include "Evolution/Systems/Cce/Initialize/InitializeJ.hpp"
22 namespace InitializeJ {
38 static std::string name() noexcept {
return "AngularCoordTolerance"; }
40 "Tolerance of initial angular coordinates for CCE"};
41 static type lower_bound() noexcept {
return 1.0e-14; }
42 static type upper_bound() noexcept {
return 1.0e-3; }
43 static type suggested_value() noexcept {
return 1.0e-10; }
49 "Number of linearized inversion iterations."};
50 static type lower_bound() noexcept {
return 10; }
51 static type upper_bound() noexcept {
return 1000; }
52 static type suggested_value() noexcept {
return 300; }
58 "If true, initialization will error if it hits MaxIterations"};
59 static type suggested_value() noexcept {
return true; }
63 tmpl::list<AngularCoordinateTolerance, MaxIterations, RequireConvergence>;
65 "Initialization process where J is set so Psi0 is vanishing\n"
66 "(roughly a no incoming radiation condition)"};
71 NoIncomingRadiation(
double angular_coordinate_tolerance,
72 size_t max_iterations,
73 bool require_convergence =
false) noexcept;
75 NoIncomingRadiation() = default;
77 std::unique_ptr<InitializeJ> get_clone() const noexcept override;
84 angular_cauchy_coordinates,
88 size_t number_of_radial_points) const noexcept override;
90 void pup(PUP::er& p) noexcept override;
93 bool require_convergence_ = false;
94 double angular_coordinate_tolerance_ = 1.0e-10;
95 size_t max_iterations_ = 300;