Prototypes | |
static UNUSED int | XLALEOBSpinPrecStopConditionBasedOnPR (double UNUSED t, const double values[], double dvalues[], void UNUSED *funcParams) |
Stopping conditions for dynamics integration for SEOBNRv3. More... | |
static int | XLALEOBSpinPrecAlignedStopCondition (double UNUSED t, const double values[], double dvalues[], void *funcParams) |
Stopping condition for the regular resolution SEOBNRv1/2 orbital evolution – stop when reaching max orbital frequency in strong field. More... | |
static int | XLALSpinPrecAlignedHiSRStopCondition (double UNUSED t, const double UNUSED values[], double dvalues[], void UNUSED *funcParams) |
Stopping condition for the high resolution SEOBNRv1/2 orbital evolution – stop when reaching a minimum radius 0.3M out of the EOB horizon (Eqs. More... | |
SEOBHCoeffConstants | XLALEOBSpinPrecCalcSEOBHCoeffConstants (REAL8 eta) |
Optimized routine for calculating coefficients for the v3 Hamiltonian. More... | |
int | XLALSimIMRSpinEOBWaveform (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI_in, const REAL8 m2SI_in, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 INspin1[], const REAL8 INspin2[], const UINT4 PrecEOBversion) |
Standard interface for SEOBNRv3 waveform generator: calls XLALSimIMRSpinEOBWaveformAll. More... | |
int | XLALSimIMRSpinEOBWaveformAll (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8Vector **dynHi, SphHarmTimeSeries **hlmPTSoutput, SphHarmTimeSeries **hlmPTSHiOutput, SphHarmTimeSeries **hIMRlmJTSHiOutput, SphHarmTimeSeries **hIMRoutput, REAL8Vector **AttachPars, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 INspin1x, const REAL8 INspin1y, const REAL8 INspin1z, const REAL8 INspin2x, const REAL8 INspin2y, const REAL8 INspin2z, const UINT4 PrecEOBversion) |
This function generates precessing spinning SEOBNRv3 waveforms h+ and hx. More... | |
Go to the source code of this file.
Macros | |
#define | _LALSIMIMRSPINPRECEOB_C |
#define | debugOutput 0 |
#define | FREE_EVERYTHING |
#define | FREE_SPHHARM |
#define | PRINT_PARAMS |
#define _LALSIMIMRSPINPRECEOB_C |
Definition at line 21 of file LALSimIMRSpinPrecEOB.c.
#define debugOutput 0 |
Definition at line 73 of file LALSimIMRSpinPrecEOB.c.
#define FREE_EVERYTHING |
Definition at line 81 of file LALSimIMRSpinPrecEOB.c.
#define FREE_SPHHARM |
Definition at line 158 of file LALSimIMRSpinPrecEOB.c.
#define PRINT_PARAMS |
Definition at line 166 of file LALSimIMRSpinPrecEOB.c.
|
static |
Stopping conditions for dynamics integration for SEOBNRv3.
Definition at line 175 of file LALSimIMRSpinPrecEOB.c.
|
static |
Stopping condition for the regular resolution SEOBNRv1/2 orbital evolution – stop when reaching max orbital frequency in strong field.
At each test, if omega starts to decrease, return 1 to stop evolution; if not, update omega with current value and return GSL_SUCCESS to continue evolution.
t | UNUSED |
values | dynamical variable values |
dvalues | dynamical variable time derivative values |
funcParams | physical parameters |
Definition at line 371 of file LALSimIMRSpinPrecEOB.c.
|
static |
Stopping condition for the high resolution SEOBNRv1/2 orbital evolution – stop when reaching a minimum radius 0.3M out of the EOB horizon (Eqs.
9b, 37) or when getting nan in any of the four ODE equations At each test, if conditions met, return 1 to stop evolution; if not, return GSL_SUCCESS to continue evolution.
t | UNUSED |
values | dynamical variable values |
dvalues | dynamical variable time derivative values |
funcParams | physical parameters |
Definition at line 403 of file LALSimIMRSpinPrecEOB.c.
SEOBHCoeffConstants XLALEOBSpinPrecCalcSEOBHCoeffConstants | ( | REAL8 | eta | ) |
Optimized routine for calculating coefficients for the v3 Hamiltonian.
Definition at line 425 of file LALSimIMRSpinPrecEOB.c.
int XLALSimIMRSpinEOBWaveform | ( | REAL8TimeSeries ** | hplus, |
REAL8TimeSeries ** | hcross, | ||
const REAL8 | phiC, | ||
const REAL8 | deltaT, | ||
const REAL8 | m1SI_in, | ||
const REAL8 | m2SI_in, | ||
const REAL8 | fMin, | ||
const REAL8 | r, | ||
const REAL8 | inc, | ||
const REAL8 | INspin1[], | ||
const REAL8 | INspin2[], | ||
const UINT4 | PrecEOBversion | ||
) |
Standard interface for SEOBNRv3 waveform generator: calls XLALSimIMRSpinEOBWaveformAll.
This time series contains harmonics in precessing (P) frame, no RD, for the end of the signal (high samling part)
This stores harmonics in J-frame, no RD, for the end of the signal (high sampling part)
Stores harmonics in J-frame with RD, for the end of the signal (high samling part)
stores harmonics of the full waveform in I-frame
hplus | < OUTPUT, +-polarization waveform |
hcross | < OUTPUT, x-polarization waveform |
phiC | < coalescence orbital phase (rad) |
deltaT | < sampling time step |
m1SI_in | < mass-1 in SI unit (kg) |
m2SI_in | < mass-2 in SI unit (kg) 8 |
fMin | < starting frequency (Hz) |
r | < luminosity distance in SI unit (m) |
inc | < inclination angle |
INspin1 | < spin1 |
INspin2 | < spin2 |
PrecEOBversion | < Precessing EOB waveform generator model |
Definition at line 460 of file LALSimIMRSpinPrecEOB.c.
int XLALSimIMRSpinEOBWaveformAll | ( | REAL8TimeSeries ** | hplus, |
REAL8TimeSeries ** | hcross, | ||
REAL8Vector ** | dynHi, | ||
SphHarmTimeSeries ** | hlmPTSoutput, | ||
SphHarmTimeSeries ** | hlmPTSHiOutput, | ||
SphHarmTimeSeries ** | hIMRlmJTSHiOutput, | ||
SphHarmTimeSeries ** | hIMRoutput, | ||
REAL8Vector ** | AttachPars, | ||
const REAL8 | phiC, | ||
const REAL8 | deltaT, | ||
const REAL8 | m1SI, | ||
const REAL8 | m2SI, | ||
const REAL8 | fMin, | ||
const REAL8 | r, | ||
const REAL8 | inc, | ||
const REAL8 | INspin1x, | ||
const REAL8 | INspin1y, | ||
const REAL8 | INspin1z, | ||
const REAL8 | INspin2x, | ||
const REAL8 | INspin2y, | ||
const REAL8 | INspin2z, | ||
const UINT4 | PrecEOBversion | ||
) |
This function generates precessing spinning SEOBNRv3 waveforms h+ and hx.
Currently, only h2m harmonics will be generated.
Input conventions: Cartesian coordinate system: initial \(\vec{L}_N\) is in the xz plane, rotated away from the z-axis by an angle inc phiC : in radians deltaT : in SI units (s) m1SI, m2SI : in SI units (kg) fMin : in SI units (Hz) r : in SI units (m) inc : in radians INspin{1,2}: in dimensionless units of m{1,2}^2
Evolution conventions: values[0-2]: r vector in units of total mass values[3-5]: pstar vector in units of reduced mass values[6-8]: S1 vector in units of (total mass)^2 values[9-11]: S2 vector in units of (total mass)^2 values[12-13]: phases (carrier and precession (Thomas)) in rads
Note that when the initial opening angles of the spins w.r.t. the initial Newtonian angular momentum are small, the aligned-spin SEOBNRv2 dynamics is used. However, the waveforms are then generated according the the SEOBNRv3 model: for example, they include the (2,1) mode.
STEP 0) Prepare parameters, including pre-computed coefficients for EOB Hamiltonian, flux and waveform STEP 1) Solve for initial conditions STEP 2) Evolve EOB trajectory both at low and high sampling rate STEP 3) Compute Euler angles to go from initial inertial frame to precessing frame STEP 4) Locate merger point and at that time calculate J, chi and kappa, and construct final J frame STEP 5) Generate quasi-nonprecessing waveforms in precessing frame STEP 6) Rotate quasi-nonprecessing waveforms from precessing to final-J-frame STEP 7) Attach ringdown to final-J-frame modes STEP 8) Rotate modes from final final-J-frame to initial inertial frame STEP 9) Compute h+, hx
NOTE: if the spin magnitude is less than 1.e-5 we put them explicitely to zero!
If the misalignment angle of spins with orbital angular momentum is less than <1.e-4 we treat them as aligned for evolution of the orbital dynamics
OPTV3: Define the SpinEOBH coefficients constants of Hamiltonian spin derivative calculation.
If spins are aligned/antialigned with LNhat to within 1e-4 rads, then use SEOBNRv2 dynamics
Euler angles to go from precessing to J-frame. Note that we follow in this code passive rotation Z-Y-Z and notations of Arun et al. arXiv 0810.5336, however the Wiegner D-matrix and mode rotation coded up in LAL for active rotation We make the angle transformation here in order to match two conventions
We search for maximum of the frame-invariant amplitude and set its time as time of coalescence (or reference time)
NOTE we are making again transformation between notations of Arun et. al adopted here and Wiegner matrix (active rotation) coded up in LAL
NOTE that we have use now different convention: the phi_ref (or one might call it phi_c) is now the azimuthal phase of the observer in the source (I-)frame. Together with inclination angle it defines the position of the observer in the (I-)frame associated with the source at t=0
hplus | < output: hplus GW polarization |
hcross | < output: hcross GW polarization |
dynHi | < Here we store and return the seob dynamics for high sampling (end of inspiral) |
hlmPTSoutput | < Here we store and return the PWave (high sampling) |
hlmPTSHiOutput | < Here we store and return the JWave (high sampling) |
hIMRlmJTSHiOutput | < Here we store and return the JWaveIMR (high sampling) |
hIMRoutput | < Here we store and return the IWave (full) |
AttachPars | < Parameters of RD attachment: |
phiC | < intitial orbital phase |
deltaT | < sampling time step |
m1SI | < mass of first object in SI |
m2SI | < mass of second object in SI |
fMin | < fMin |
r | < luminosity distance in SI |
inc | < inclination |
INspin1x | < spin1 x-component |
INspin1y | < spin1 y-component |
INspin1z | < spin1 z-component |
INspin2x | < spin2 x-component |
INspin2y | < spin2 y-component |
INspin2z | < spin2 z-component |
PrecEOBversion | < Precessing EOB waveform generator model |
Definition at line 583 of file LALSimIMRSpinPrecEOB.c.