From 40ad3ac46eb987d35a70cdfbe16f4aba7c33f95c Mon Sep 17 00:00:00 2001 From: Kyle Nelli Date: Wed, 3 Jan 2024 19:42:59 -0800 Subject: [PATCH] Add a radial expansion to the BBH ID pipeline --- support/Pipelines/Bbh/InitialData.py | 14 ++++++++++++++ support/Pipelines/Bbh/InitialData.yaml | 2 +- support/Pipelines/Bbh/Inspiral.py | 1 + support/Pipelines/Bbh/Inspiral.yaml | 2 +- tests/support/Pipelines/Bbh/Test_InitialData.py | 4 ++++ tests/support/Pipelines/Bbh/Test_Inspiral.py | 2 ++ tests/support/Pipelines/Bbh/Test_Ringdown.py | 1 + 7 files changed, 24 insertions(+), 2 deletions(-) diff --git a/support/Pipelines/Bbh/InitialData.py b/support/Pipelines/Bbh/InitialData.py index 8513428f5418..990b7bad2695 100644 --- a/support/Pipelines/Bbh/InitialData.py +++ b/support/Pipelines/Bbh/InitialData.py @@ -19,6 +19,7 @@ def id_parameters( mass_ratio: float, separation: float, orbital_angular_velocity: float, + radial_expansion_velocity: float, refinement_level: int, polynomial_order: int, ): @@ -30,6 +31,7 @@ def id_parameters( mass_ratio: Defined as q = M_A / M_B >= 1. separation: Coordinate separation D of the black holes. orbital_angular_velocity: Omega_0. + radial_expansion_velocity: adot_0. refinement_level: h-refinement level. polynomial_order: p-refinement level. """ @@ -50,6 +52,7 @@ def id_parameters( "ExcisionRadiusRight": 0.89 * 2.0 * M_A, "ExcisionRadiusLeft": 0.89 * 2.0 * M_B, "OrbitalAngularVelocity": orbital_angular_velocity, + "RadialExpansionVelocity": radial_expansion_velocity, # Resolution "L": refinement_level, "P": polynomial_order, @@ -60,6 +63,7 @@ def generate_id( mass_ratio: float, separation: float, orbital_angular_velocity: float, + radial_expansion_velocity: float, refinement_level: int, polynomial_order: int, id_input_file_template: Union[str, Path] = ID_INPUT_FILE_TEMPLATE, @@ -81,6 +85,7 @@ def generate_id( mass_ratio=mass_ratio, separation=separation, orbital_angular_velocity=orbital_angular_velocity, + radial_expansion_velocity=radial_expansion_velocity, refinement_level=refinement_level, polynomial_order=polynomial_order, ) @@ -112,6 +117,15 @@ def generate_id( help="Orbital angular velocity Omega_0.", required=True, ) +@click.option( + "--radial-expansion-velocity", + "-a", + type=float, + help=( + "Radial expansion velocity adot0 which is radial velocity over radius." + ), + required=True, +) @click.option( "--refinement-level", "-L", diff --git a/support/Pipelines/Bbh/InitialData.yaml b/support/Pipelines/Bbh/InitialData.yaml index 3afd3eb95265..2b02b2dff196 100644 --- a/support/Pipelines/Bbh/InitialData.yaml +++ b/support/Pipelines/Bbh/InitialData.yaml @@ -22,7 +22,7 @@ Background: &background Spin: [0., 0., 0.] Center: [0., 0., 0.] AngularVelocity: {{ OrbitalAngularVelocity }} - Expansion: 0. + Expansion: {{ RadialExpansionVelocity }} LinearVelocity: [0., 0., 0.] FalloffWidths: [4.8, 4.8] diff --git a/support/Pipelines/Bbh/Inspiral.py b/support/Pipelines/Bbh/Inspiral.py index 2833894933c8..d2f141bbc034 100644 --- a/support/Pipelines/Bbh/Inspiral.py +++ b/support/Pipelines/Bbh/Inspiral.py @@ -48,6 +48,7 @@ def inspiral_parameters( "XCoordB": id_domain_creator["ObjectB"]["XCoord"], # Initial functions of time "InitialAngularVelocity": id_binary["AngularVelocity"], + "RadialExpansionVelocity": float(id_binary["Expansion"]), # Resolution "L": refinement_level, "P": polynomial_order, diff --git a/support/Pipelines/Bbh/Inspiral.yaml b/support/Pipelines/Bbh/Inspiral.yaml index 984d2b6ef0a3..ef5124448af9 100644 --- a/support/Pipelines/Bbh/Inspiral.yaml +++ b/support/Pipelines/Bbh/Inspiral.yaml @@ -62,7 +62,7 @@ DomainCreator: TimeDependentMaps: InitialTime: 0.0 ExpansionMap: - InitialValues: [1.0, 0.0] + InitialValues: [1.0, {{ RadialExpansionVelocity }}] AsymptoticVelocityOuterBoundary: -1.0e-6 DecayTimescaleOuterBoundaryVelocity: 50.0 RotationMap: diff --git a/tests/support/Pipelines/Bbh/Test_InitialData.py b/tests/support/Pipelines/Bbh/Test_InitialData.py index 224a45a66bff..9874aa7e7d3e 100644 --- a/tests/support/Pipelines/Bbh/Test_InitialData.py +++ b/tests/support/Pipelines/Bbh/Test_InitialData.py @@ -29,6 +29,7 @@ def test_generate_id(self): mass_ratio=1.5, separation=20.0, orbital_angular_velocity=0.01, + radial_expansion_velocity=-1.0e-5, refinement_level=1, polynomial_order=5, ) @@ -39,6 +40,7 @@ def test_generate_id(self): self.assertAlmostEqual(params["ExcisionRadiusRight"], 1.068) self.assertAlmostEqual(params["ExcisionRadiusLeft"], 0.712) self.assertEqual(params["OrbitalAngularVelocity"], 0.01) + self.assertEqual(params["RadialExpansionVelocity"], -1.0e-5) self.assertEqual(params["L"], 1) self.assertEqual(params["P"], 5) # COM is zero @@ -60,6 +62,8 @@ def test_cli(self): "20", "--orbital-angular-velocity", "0.01", + "--radial-expansion-velocity", + "-1.0e-5", "--refinement-level", "1", "--polynomial-order", diff --git a/tests/support/Pipelines/Bbh/Test_Inspiral.py b/tests/support/Pipelines/Bbh/Test_Inspiral.py index d8333c570964..6aef10df988b 100644 --- a/tests/support/Pipelines/Bbh/Test_Inspiral.py +++ b/tests/support/Pipelines/Bbh/Test_Inspiral.py @@ -29,6 +29,7 @@ def setUp(self): mass_ratio=1.5, separation=20.0, orbital_angular_velocity=0.01, + radial_expansion_velocity=-1.0e-5, refinement_level=1, polynomial_order=5, run_dir=self.test_dir / "ID", @@ -59,6 +60,7 @@ def test_inspiral_parameters(self): self.assertEqual(params["XCoordA"], 8.0) self.assertEqual(params["XCoordB"], -12.0) self.assertEqual(params["InitialAngularVelocity"], 0.01) + self.assertEqual(params["RadialExpansionVelocity"], -1.0e-5) self.assertEqual(params["L"], 1) self.assertEqual(params["P"], 5) diff --git a/tests/support/Pipelines/Bbh/Test_Ringdown.py b/tests/support/Pipelines/Bbh/Test_Ringdown.py index b5971404744f..e6e56fb231ba 100644 --- a/tests/support/Pipelines/Bbh/Test_Ringdown.py +++ b/tests/support/Pipelines/Bbh/Test_Ringdown.py @@ -30,6 +30,7 @@ def setUp(self): mass_ratio=1.5, separation=20.0, orbital_angular_velocity=0.01, + radial_expansion_velocity=-1.0e-5, refinement_level=1, polynomial_order=5, run_dir=self.test_dir / "ID",