#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Gabriele Bozzola):
> Right now using FROM\_TWOPUNCTURES serves the purpose that is being suggested for f0 = None \(FROM\_TWOPUNCTURES is just a string and I only use the variable name to try and avoid typos as much as possible given that Python is fully dynamically typed and requires no variable declarations at all\). I would rather not use None for this since there is only one None and one can get the total mass also in other ways which is easy to do by having another FROM\_XXX but not if None is already taken.
I understand the reasoning now and it makes sense.
> You can use `power.py` as a Python module `import power` then call the Python functions directly. This means you have to write Python code rather than shell code.
My personal preference would be to call power with something like `power.py …. --f0 0.1 --ADM 1 --method POWER .` as opposed to creating a Python script, figuring out the function signature, taking care of saving the data myself, et cetera. Also, extending the `main()` function does not affect the functionalities for when you import `power` as a module, so you can still write Python code in exactly the same way.
> My first guesses for bad POWER output would be:
* make sure your psi4 starts and ends at 0 amplitude
* make you may have to change the list of detectors being used, using detectors too far out or in can give bad results
* TODO: probably there should be options to control the order of the polynomials that are being fit to the data
I’ll try to play around and see.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Roland Haas):
Right now using `FROM_TWOPUNCTURES` serves the purpose that is being suggested for `f0 = None` \(`FROM_TWOPUNCTURES` is just a string and I only use the variable name to try and avoid typos as much as possible given that Python is fully dynamically typed and requires no variable declarations at all\). I would rather not use `None` for this since there is only one `None` and one can get the total mass also in other ways which is easy to do by having another `FROM_XXX` but not if `None` is already taken.
You can use `power.py` as a Python module `import power` then call the Python functions directly. This means you have to write Python code rather than shell code.
I have code around somewhere that would parse the header and then picks the correct column. That should be easy to incorporate.
My first guesses for bad POWER output would be:
* make sure your psi4 starts and ends at 0 amplitude
* make you may have to change the list of detectors being used, using detectors too far out or in can give bad results
* TODO: probably there should be options to control the order of the polynomials that are being fit to the data
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Roland Haas):
Maria, Miguel since you are the first non-local users, which options would you find useful on the command line? Clearly setting `f0` seems among that list. Any others?
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Gabriele Bozzola):
What I had in mind is that one can put `power.py` in their PATH and use it for all their simulations without having to touch the code. This requires the parameters to be adjustable via command-line. But if that is not the designed way of using the tool, that would be fine.
Also, for clarity, instead of defining a string `FROM_TWOPUNCTURES` that is going to be compared to something that is morally a float \(`f0` and `ADMMass`\), I would recommend setting the default of two parameters to `None` in the function definitions, and then checking if value is `None`. If not, one can assume that the values from TwoPunctures are used \(which is what is happening now\). So, something along the lines of
```python
if f0 is None:
f0 = getCutoffFrequencyFromTwoPuncturesBBH(meta_name)
```
\(As someone that is not familiar with the code, I found the `FROM_TWOPUNCTURES` variable very confusing, but maybe its role will be clarified by the documentation.\)
Two additional comments are:
* When the spin is computed from QLM a specific column is read. In my simulation, column 59 corresponds to `59:qlm_coordspinx[1]`, which is not the mass. Some assumptions are being made here and no checks are performed. This might lead to subtly wrong results.
* It would be nice, and probably easy, to extend POWER to be able to compute the strain at a fixed radius \(essentially, only doing the FFI\). My use case is this. I tried POWER on my data and the output doesn’t look good at all. I don’t know if the problem is the interpolation to infinity or the data. Maybe the data becomes unreliable at a specific distance. If I can plot the strains at all the various distances I can get a sense of what is going on.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Roland Haas):
I will have to write proper documentation still., which will document these,
I am be quite reluctant to add new options to the command line since it can easily become a mess. For more complex use cases, using it as a Python module and calling the POWER or Nakano routines directly is the preferred way of using it.
The thinking is that “module options” will be things that would be identical between simulations while function arguments are things that change from one simulation to the next.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2526: McLachlan has incorrect READ declarations for presync.
Reporter: Peter Diener
Status: new
Milestone: ET_2021_05
Version: development version
Type: bug
Priority: major
Component: EinsteinToolkit thorn
The schedule.ccl file contains incorrect READ declarations for the stress-energy tensor from TmunuBase for the routines ML\_BSSN\_ADMBaseEverywhere and ML\_BSSN\_ADMBaseInterior.
The Read statements were present \(but commented out\) after commit 13f855e8262ca38063a4d0fff827562208c8c86e and then uncommented after commit 25db4e50dec6fb64b352d3092e9d4abd40aa3002.
If I’m not mistaken the schedule.cct is generated by Kranc, my suspicion is that they have been generated by Kranc for some time, commented out by hand until commit 13f855e8262ca38063a4d0fff827562208c8c86e and then not after that.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2526/mclachlan-has-inc…
#2175: Test "Single, stable neutron star" example
Reporter: Roland Haas
Status: open
Milestone: ET_2021_05
Version: development version
Type: task
Priority: major
Component: EinsteinToolkit website
Comment (by Peter Diener):
After a bit of investigation it appears that the schedule.ccl file for ML\_BSSN contains erroneous read declarations for the stress energy tensor from TmunuBase. Tmunu is not necessary for converting from BSSN to ADM variables. I believe this is generated by Kranc. I still tried to comment out these read declarations and rerun and found agreement to within roundoff errors with the gallery files. I will open a separate ticket for this issue.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2175/test-single-stabl…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Gabriele Bozzola):
I also tried the new POWER. It took me a while to figure out how to set f0 and M\_ADM. I would have expected to find these options among the ones you can specify via command-line, or at least among the “module options”. I saw that there are checks like `f0 == FROM_TWOPUNCTURES`, so I even considered whether I had to set `f0` by setting the variable `FROM_TWOPUNCTURES`.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…
#2413: Include "POWER" code to extrapolate waveforms to scri+ into ET
Reporter: Roland Haas
Status: open
Milestone:
Version:
Type: task
Priority: major
Component: EinsteinToolkit thorn
Comment (by Maria):
I tried to run power with nsnstohmns.
It is able to read \*asc files, even defaults on them!
Unfortunately, it still complains about missing TwoPunctures.
▶ ./power.py --radii '\[2:5\]' --method POWER nsnstohmns\_dx9
Extrapolating with POWER method...
Traceback \(most recent call last\):
File "./power.py", line 860, in <module>
main\(\)
File "./power.py", line 835, in main
strains = POWER\(args.path, PSI4\_GLOB, radii, modes\)
File "./power.py", line 481, in POWER
meta\_name = glob.glob\(os.path.join\(simdirs, "TwoPunctures.bbh"\)\)\[0\]
IndexError: list index out of range
Regarding the path, it still requests a nested path for the files of type: ‘\*/output-????/\*/’
It would be good to be able to receive just the mp\_Psi4.h5.
The error is either:
It gives me either:
FileNotFoundError: \[Errno 2\] No such file or directory
or
error: argument path: invalid dir\_path value
Would be good to explain plain in the documentation about this.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2413/include-power-cod…