<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 8 Jun 2020, at 14:48, Ian Hinder &lt;<a href="mailto:ian.hinder@manchester.ac.uk" class="">ian.hinder@manchester.ac.uk</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 4 Jun 2020, at 16:39, Bill Gabella &lt;<a href="mailto:b.gabella@vanderbilt.edu" class="">b.gabella@vanderbilt.edu</a>&gt; wrote:</div>
<div class="">
<div class=""><br class="">
** [ZE] NRPyPN we use two punctures for initial data in ETK.&nbsp; Looking<br class="">
for low ecc BBH intial data parameter solvers.&nbsp; Wrote one based on<br class="">
literature.&nbsp; Option in Two Punctures that you sepcify the 8 input params<br class="">
and outputs the initial data, P_t and P_r.&nbsp; If close to ecc =0, as close<br class="">
as Post-Newtonian allows.&nbsp; ES-Good enough params or need to iterate?&nbsp;<br class="">
ZE-Paper by Ramos-Buades et al. <a href="https://arxiv.org/abs/1810.00036" class="">
https://arxiv.org/abs/1810.00036</a> .&nbsp; They<br class="">
say with one iteration can drop ecc to order 1/10^3 .&nbsp; RH-Good to have<br class="">
the notebook in the utils folder for Two Punctures.&nbsp; ZE-Tedious, but the<br class="">
C version is not too hard and integrate with Two Punctures.&nbsp; RH-Very low<br class="">
eccentricity requires man iterations, a glitch shows that ecc energy<br class="">
goes up.&nbsp; Scheme gives back P_t and P_r.&nbsp; PN in C does iteration zero,<br class="">
but not later ones.&nbsp; RH&amp;ZE-Iteration greater than 1 is not in NRPyPN but<br class="">
RH's student has been doing that.&nbsp; RH-I will reach out to principals and<br class="">
discuss this.&nbsp; Does two orbits and sees what to update, and then<br class="">
re-submits itself, and want ecc &lt; 1e-6 .&nbsp; First bit is all eccentricity<br class="">
reduction.&nbsp; ZE-Found typos in the original paper.&nbsp; dE_GW/dt was very<br class="">
different than other groups use.&nbsp; RH-Recevied their Mathematica<br class="">
notebook, so hopefully better than the paper.<br class="">
<br class="">
Some links to NRPyPN, Low-eccentricity Post-Newtonian BBH initial data<br class="">
parameters (for Two Punctures):<br class="">
<a href="https://nbviewer.jupyter.org/github/zachetienne/nrpytutorial/blob/master/NRPyPN/NRPyPN.ipynb" class="">https://nbviewer.jupyter.org/github/zachetienne/nrpytutorial/blob/master/NRPyPN/NRPyPN.ipynb</a><br class="">
<a href="https://github.com/zachetienne/nrpytutorial/tree/master/NRPyPN" class="">https://github.com/zachetienne/nrpytutorial/tree/master/NRPyPN</a> &nbsp; (source<br class="">
codes)<br class="">
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">Hi,</div>
<div class=""><br class="">
</div>
<div class="">I developed an infrastructure for obtaining low-eccentricity parameters for BBH. &nbsp;It is implemented and freely-available in SimulationTools for Mathematica. &nbsp;See&nbsp;<a href="https://bitbucket.org/simulationtools/simulationtools/src/master/EccentricityReduction.m" class="">https://bitbucket.org/simulationtools/simulationtools/src/master/EccentricityReduction.m</a>.
 &nbsp;I haven't used it in a while, but can't think why it wouldn't still work. &nbsp;It lacks documentation - if someone is interested in using it or developing it further, I can see if I can find some time to write up some docs.&nbsp;</div>
<div class="">&nbsp;</div>
<div class="">You can use it to generate an initial guess from PN (QuasiCircularParametersFromPostNewtonian[{m_,&nbsp;q_,&nbsp;chi1_,&nbsp;chi2_,&nbsp;om_}]) for any aligned-spin case (you can probably use chi_z for precessing cases). &nbsp;This will give you the separation, orbital
 angular momentum (r * py) and radial linear momentum (px). &nbsp;You then run a simulation with these parameters for a few orbits, and analyse the results. &nbsp;The method uses the time derivative of the radial separation for its eccentricity estimator. You use&nbsp;BinaryEccentricityFromSeparationDerivative,
 passing it the separation as a function of time (which you can get from ReadBinarySeparation), and a time window in which to measure the eccentricity. &nbsp;You can get a suitable window from EccentricityFitWindow, which calculates it using a simple heuristic from
 the initial orbital frequency to give two orbits. &nbsp;You can then use ReduceEccentricity with the results of BinaryEccentricityFromSeparationDerivative which gives you updated TwoPunctures parameters. &nbsp;</div>
<div class=""><br class="">
</div>
<div class="">There are a number of higher level functions designed to fit this into an automated workflow. &nbsp;I was using it with SimFactory 3, which supports the idea of post-simulation scripts and &quot;termination reasons&quot;. &nbsp;I had it set up so that when Cactus
 terminates during an eccentricity reduction run, it would run a script (<a href="https://bitbucket.org/simulationtools/simulationtools/src/master/Scripts/AnalyseEccentricity" class="">https://bitbucket.org/simulationtools/simulationtools/src/master/Scripts/AnalyseEccentricity</a>)
 which would call SimulationTools to estimate the next separation and radial momentum (I chose to keep the angular momentum L fixed, since that corresponds to fixed omega at 0 PN (maybe 1 PN?)). &nbsp;The post-simulation script is&nbsp;<a href="https://bitbucket.org/ianhinder/simfactory3/src/master/simfactory/etc/appdb/scripts/post-simulation" class="">https://bitbucket.org/ianhinder/simfactory3/src/master/simfactory/etc/appdb/scripts/post-simulation</a>,
 and it has a number of heuristics for what to do in different cases.</div>
<div class=""><br class="">
</div>
<div class="">There are a lot of parts to this system, but it used to run extremely well, and was fully automated, and was used to produce many production simulations, including the very high spin simulations used in&nbsp;<a href="https://arxiv.org/abs/1810.10585" class="">https://arxiv.org/abs/1810.10585</a>,
 with chi_z = 0.9 and mass ratios up to 5.</div>
</div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>I forgot to mention the crucial part! &nbsp;For those simulations, it's very challenging to get the eccentricity down; typically I could only get it down to ~1e-3, but that is usually enough. &nbsp;For simple cases, like equal mass, non-spinning, if you are at a
 large separation (e.g. 15 orbits), the method was able to iterate the eccentricity down to something like 1e-6.</div>
<div><br class="">
</div>
</div>
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
--&nbsp;<br class="">
Ian<b class=""><span class="Apple-converted-space">&nbsp;</span></b>Hinder<br class="">
Research Software Engineer<br class="">
University of Manchester, UK</div>
</div>
</div>
<br class="">
</body>
</html>