Prototypes | |
int | XLALEOBHighestInitialFreq (REAL8 *freqMinRad, REAL8 mTotal) |
static UNUSED UINT4 | argmax (REAL8Vector *vec) |
static UNUSED REAL8Vector * | get_slice (REAL8Vector *vec, UINT4 lo, UINT4 hi) |
static UNUSED int | XLALEOBFindRobustPeak (REAL8 *tPeakQuant, REAL8Vector *tVec, REAL8Vector *quantVec, UINT4 window_width) |
static UNUSED int | XLALEOBSpinPrecStopCondition_v4 (double UNUSED t, const double values[], double dvalues[], void UNUSED *funcParams) |
static UNUSED int | XLALEOBSpinPrecStopConditionBasedOnPR (double UNUSED t, const double values[], double dvalues[], void UNUSED *funcParams) |
Stopping conditions for dynamics integration for SEOBNRv4P. 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 SEOBNRv4. More... | |
static INT4 | XLALSetup_EOB__std_mode_array_structure (LALValue *ModeArray, UINT4 PrecEOBversion) |
ModeArray is a structure which allows to select the the co-precessing frame modes to include in the waveform. More... | |
static INT4 | XLALCheck_EOB_mode_array_structure (LALValue *ModeArray, UINT4 PrecEOBversion) |
ModeArray is a structure which allows to select the the co-precessing frame modes to include in the waveform. More... | |
int | XLALSimIMRSpinPrecEOBWaveform (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 INspin1[], const REAL8 INspin2[], UNUSED const UINT4 PrecEOBversion, LALDict *LALParams) |
Standard interface for SEOBNRv4P waveform generator: calls XLALSimIMRSpinPrecEOBWaveformAll. More... | |
static int | SEOBGetLMaxInModeArray (LALValue *modearray, int lmax) |
This function returns the maximum ell in the mode array. More... | |
SphHarmTimeSeries * | XLALSimIMRSpinPrecEOBModes (const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 INspin1[], const REAL8 INspin2[], UNUSED const UINT4 PrecEOBversion, LALDict *LALParams) |
Standard interface for SEOBNRv4P modes generator: calls XLALSimIMRSpinPrecEOBWaveformAll. More... | |
static int | CAmpPhaseSequence_Init (CAmpPhaseSequence **campphase, int size) |
static int | CAmpPhaseSequence_Destroy (CAmpPhaseSequence *campphase) |
static int | SphHarmListEOBNonQCCoeffs_Destroy (SphHarmListEOBNonQCCoeffs *list) |
static int | SphHarmListEOBNonQCCoeffs_AddMode (SphHarmListEOBNonQCCoeffs **list_prepended, EOBNonQCCoeffs *nqcCoeffs, UINT4 l, INT4 m) |
static SphHarmListEOBNonQCCoeffs * | SphHarmListEOBNonQCCoeffs_GetMode (SphHarmListEOBNonQCCoeffs *list, UINT4 l, INT4 m) |
static int | SphHarmListCAmpPhaseSequence_Destroy (SphHarmListCAmpPhaseSequence *list) |
static int | SphHarmListCAmpPhaseSequence_AddMode (SphHarmListCAmpPhaseSequence **list_prepended, CAmpPhaseSequence *campphase, UINT4 l, INT4 m) |
static SphHarmListCAmpPhaseSequence * | SphHarmListCAmpPhaseSequence_GetMode (SphHarmListCAmpPhaseSequence *list, UINT4 l, INT4 m) |
static int | SEOBdynamics_Destroy (SEOBdynamics *seobdynamics) |
static int | SEOBdynamics_Init (SEOBdynamics **seobdynamics, UINT4 retLen) |
static REAL8 | SEOBCalculateChiS (REAL8 chi1dotZ, REAL8 chi2dotZ) |
Functions to calculate symmetrized and antisymmetrized combinations of the dimensionless spins projected on the radiation frame Z-axis (L or LN) More... | |
static REAL8 | SEOBCalculateChiA (REAL8 chi1dotZ, REAL8 chi2dotZ) |
static REAL8 | SEOBCalculatetplspin (REAL8 m1, REAL8 m2, REAL8 eta, REAL8 chi1dotZ, REAL8 chi2dotZ, INT4 SpinAlignedEOBversion) |
Function to calculate tplspin See discussion below Eq. More... | |
static int | SEOBCalculateSigmaKerr (REAL8Vector *sigmaKerr, REAL8Vector *s1, REAL8Vector *s2) |
Function to calculate normalized spin of the deformed-Kerr background in SEOBNRv1. More... | |
static int | SEOBCalculateSigmaStar (REAL8Vector *sigmaStar, REAL8 mass1, REAL8 mass2, REAL8Vector *s1, REAL8Vector *s2) |
Function to calculate normalized spin of the test particle in SEOBNRv1. More... | |
static int | SEOBComputeExtendedSEOBdynamics (SEOBdynamics **seobdynamics, REAL8Array *dynamics, UINT4 retLen, SpinEOBParams *seobParams, flagSEOBNRv4P_hamiltonian_derivative flagHamiltonianDerivative, flagSEOBNRv4P_Zframe flagZframe) |
This function computes quantities (polardynamics, omega, s1dotZ, s2dotZ, hamiltonian) derived from the dynamics as output by the integrator, and returns a SEOBdynamics struct. More... | |
static int | SEOBInitialConditions (REAL8Vector **ICvalues, REAL8 MfMin, REAL8 m1, REAL8 m2, REAL8Vector *chi1, REAL8Vector *chi2, SpinEOBParams *seobParams, flagSEOBNRv4P_hamiltonian_derivative flagHamiltonianDerivative) |
This function computes initial conditions for SEOBNRv4P. More... | |
static int | SEOBConvertSpinAlignedDynamicsToGenericSpins (REAL8Array **dynamics, REAL8Array *dynamics_spinaligned, UINT4 retLen, REAL8 chi1, REAL8 chi2, SpinEOBParams *seobParams) |
This function converts a spin-aligned dynamics as output by the Runge-Kutta integrator to a generic-spin dynamics. More... | |
static int | SEOBIntegrateDynamics (REAL8Array **dynamics, UINT4 *retLenOut, REAL8Vector *ICvalues, REAL8 EPS_ABS, REAL8 EPS_REL, REAL8 deltaT, REAL8 deltaT_min, REAL8 tstart, REAL8 tend, SpinEOBParams *seobParams, UINT4 flagConstantSampling, flagSEOBNRv4P_hamiltonian_derivative flagHamiltonianDerivative) |
This function integrates the SEOBNRv4P dynamics. More... | |
static int | SEOBCalculatehlmAmpPhase (CAmpPhaseSequence **hlm, INT4 l, INT4 m, SEOBdynamics *seobdynamics, EOBNonQCCoeffs *nqcCoeffs, SpinEOBParams *seobParams, UINT4 includeNQC) |
This function generates a waveform mode for a given SEOB dynamics. More... | |
static int | SEOBCalculateSphHarmListhlmAmpPhase (SphHarmListCAmpPhaseSequence **listhlm, INT4 modes[][2], UINT4 nmodes, SEOBdynamics *seobdynamics, SphHarmListEOBNonQCCoeffs *listnqcCoeffs, SpinEOBParams *seobParams, UINT4 flagNQC) |
This function generates all waveform modes as a list for a given SEOB dynamics. More... | |
static int | SEOBLocateTimePeakOmega (REAL8 *tPeakOmega, INT4 *foundPeakOmega, UNUSED REAL8Array *dynamics, SEOBdynamics *seobdynamics, UINT4 retLen, UNUSED SpinEOBParams *seobParams, UNUSED flagSEOBNRv4P_hamiltonian_derivative flagHamiltonianDerivative) |
This function finds the peak of omega. More... | |
static UNUSED int | SEOBLocateTimePeakModeAmp (REAL8 *tPeakAmp, INT4 *foundPeakAmp, CAmpPhaseSequence *hlm, SEOBdynamics *seobdynamics, UINT4 retLen) |
This function looks for the peak of a mode amplitude. More... | |
static int | SEOBInterpolateDynamicsAtTime (REAL8Vector **seobdynamics_values, REAL8 t, SEOBdynamics *seobdynamics) |
This function computes all extended dynamics values at a given time by interpolating the dynamics array. More... | |
static int | SEOBLFrameVectors (REAL8Vector **S1, REAL8Vector **S2, REAL8Vector *seobvalues, REAL8 m1, REAL8 m2, const flagSEOBNRv4P_Zframe flagZframe) |
static int | SEOBJfromDynamics (REAL8Vector **J, REAL8Vector *seobvalues, SpinEOBParams *seobParams) |
This function computes the J vector. More... | |
static int | SEOBLhatfromDynamics (REAL8Vector **L, REAL8Vector *seobvalues, SpinEOBParams *seobParams, const flagSEOBNRv4P_Zframe flagZframe) |
This function computes the L-hat vector. More... | |
static int | SEOBBuildJframeVectors (REAL8Vector *e1J, REAL8Vector *e2J, REAL8Vector *e3J, REAL8Vector *JVec) |
This function computes the Jframe unit vectors, with e3J along Jhat. More... | |
static int | SEOBEulerI2JFromJframeVectors (REAL8 *alphaI2J, REAL8 *betaI2J, REAL8 *gammaI2J, REAL8Vector *e1J, REAL8Vector *e2J, REAL8Vector *e3J) |
This function computes Euler angles I2J given the unit vectors of the Jframe. More... | |
static int | SEOBCalculateSphHarmListNQCCoefficientsV4 (SphHarmListEOBNonQCCoeffs **nqcCoeffsList, INT4 modes[][2], UINT4 nmodes, REAL8 tPeakOmega, SEOBdynamics *seobdynamics, SpinEOBParams *seobParams, REAL8Vector *chi1_omegaPeak, REAL8Vector *chi2_omegaPeak) |
This function computes the NQC coefficients for a list of mode contributions. More... | |
static UINT4 | FindClosestIndex (REAL8Vector *vec, REAL8 value) |
This function finds the index in a vector such that the value at the index closest to an input value. More... | |
static REAL8 | FindClosestValueInIncreasingVector (REAL8Vector *vec, REAL8 value) |
This function finds the value in a vector that is closest to an input value. More... | |
static int | SEOBGetFinalSpinMass (REAL8 *finalMass, REAL8 *finalSpin, REAL8Vector *seobvalues, SpinEOBParams *seobParams, const flagSEOBNRv4P_Zframe flagZframe) |
static int | SEOBAttachRDToSphHarmListhPlm (SphHarmListCAmpPhaseSequence **listhPlm_RDattached, COMPLEX16Vector **sigmaQNMlm0, INT4 modes[][2], UINT4 nmodes, REAL8 finalMass, REAL8 finalSpin, SphHarmListCAmpPhaseSequence *listhPlm, REAL8 deltaT, UINT4 retLen, UINT4 retLenRDPatch, REAL8 tAttach, REAL8Vector *seobvalues, SEOBdynamics *seobdynamics, SpinEOBParams *seobParams, const flagSEOBNRv4P_Zframe flagZframe, const INT4 debug) |
This function attaches the ringdown to the P-frame modes hlm. More... | |
static int | SEOBJoinTimeVector (REAL8Vector **tVecPmodes, UINT4 *retLenPmodes, REAL8 *tJoinHiS, UINT4 *indexJoinHiS, REAL8 *tJoinAttach, UINT4 *indexJoinAttach, UINT4 retLenHiSRDpatch, REAL8 deltaTHiS, REAL8 tstartHiS, REAL8 tAttach, SEOBdynamics *seobdynamicsAdaS, SEOBdynamics *seobdynamicsHiS) |
This function constructs the joined vector of times (AdaS+HiS+RDpatch) and keeps the jonction indices and times RDpatch is the extension of HiS for the RD, keeping the same constant sampling (indexJoinHiS, tJoinHiS) is given by the first time sample >=tstartHiS (indexJoinAttach, tJoinAttach) is given by the first time sample >=tAttach. More... | |
static int | SEOBJoinDynamics (SEOBdynamics **seobdynamicsJoined, SEOBdynamics *seobdynamics1, SEOBdynamics *seobdynamics2, UINT4 indexJoin12, UINT4 indexEnd2) |
This function copies dynamics from AdaS<HiS and HiS<tAttach to form joined dynamics, ending at the last time sample <tAttach. More... | |
static int | SEOBJoinSphHarmListhlm (SphHarmListCAmpPhaseSequence **listhlm_joined, SphHarmListCAmpPhaseSequence *listhlm_1, SphHarmListCAmpPhaseSequence *listhlm_2, INT4 modes[][2], UINT4 nmodes, UINT4 indexJoin12) |
This function copies dynamics from AdaS<HiS and HiS<tAttach to form joined dynamics, ending at the last time sample <tAttach. More... | |
static int | SEOBAmplitudePeakFromAmp22Amp21 (REAL8 *tPeak, UINT4 *indexPeak, SphHarmListCAmpPhaseSequence *listhPlm, INT4 modes[][2], UINT4 nmodes, REAL8Vector *tVec) |
This function finds the (first) index and time with the largest sum-of-squares amplitude - discrete, no interpolation The sum-of-squares amplitude is the sum of the amplitude square of all modes of the waveform, rotationally invariant for any l. More... | |
static int | SEOBEulerJ2PFromDynamics (REAL8Vector **alphaJ2P, REAL8Vector **betaJ2P, REAL8Vector **gammaJ2P, REAL8Vector *e1J, REAL8Vector *e2J, REAL8Vector *e3J, UINT4 retLen, UINT4 indexStop, SEOBdynamics *seobdynamics, SpinEOBParams *seobParams, flagSEOBNRv4P_Zframe flagZframe) |
This function computes the Euler angles from J-frame to P-frame given the dynamics and basis vectors of the J-frame Angle gamma computed according to minimal rotation condition with gamma=-alpha initially Note that all quantities in the dynamics and the basis vectors eJ are expressed in the initial I-frame. More... | |
static int | SEOBEulerJ2PPostMergerExtension (REAL8Vector *alphaJ2P, REAL8Vector *betaJ2P, REAL8Vector *gammaJ2P, COMPLEX16 sigmaQNM220, COMPLEX16 sigmaQNM210, REAL8Vector *tVec, UINT4 retLen, UINT4 indexStart, SpinEOBParams *seobParams, flagSEOBNRv4P_euler_extension flagEulerextension, INT4 flip) |
This function extends Euler angles J2P according to the prescription flagEulerextension after attachment point Two prescriptions: constant angles, or simple precession around Jfinal at rate omegaQNM220-omegaQNM210 If SpinsAlmostAligned, all Euler angles are set to 0. More... | |
static REAL8 | SEOBWignerDAmp (UINT4 l, INT4 m, INT4 mp, REAL8 beta) |
These functions compute the amplitude and phase of a Wigner coefficient Dlmmp, given Euler angles of an active rotation. More... | |
static REAL8 | SEOBWignerDPhase (INT4 m, INT4 mp, REAL8 alpha, REAL8 gamma) |
static int | SEOBRotateInterpolatehJlmReImFromSphHarmListhPlmAmpPhase (SphHarmTimeSeries **hJlm, INT4 modes[][2], UINT4 nmodes, INT4 modes_lmax, REAL8 deltaT, UINT4 retLenTS, REAL8Vector *tVecPmodes, SphHarmListCAmpPhaseSequence *listhPlm, REAL8Vector *alphaJ2P, REAL8Vector *betaJ2P, REAL8Vector *gammaJ2P, UINT4 flagSymmetrizehPlminusm) |
This function computes the hJlm Re/Im timeseries (fixed sampling) from hPlm amp/phase modes and Euler angles J2P (irregular sampling). More... | |
static int | SEOBRotatehIlmFromhJlm (SphHarmTimeSeries **hIlm, SphHarmTimeSeries *hJlm, INT4 modes_lmax, REAL8 alphaI2J, REAL8 betaI2J, REAL8 gammaI2J, REAL8 deltaT) |
This function computes the hIlm Re/Im timeseries (fixed sampling) from hJlm Re/Im timeseries (same sampling). More... | |
static int | SEOBComputehplushcrossFromhIlm (REAL8TimeSeries *hplusTS, REAL8TimeSeries *hcrossTS, INT4 modes_lmax, SphHarmTimeSeries *hIlm, REAL8 amp0, REAL8 inc, REAL8 phi) |
This function combines the modes hIlm timeseries with the sYlm to produce the polarizations hplus, hcross. More... | |
static UINT4 | SEOBGetNumberOfModesInModeArray (LALValue *modearray, int lmax) |
This function gets the number of modes present in a mode array, ignoring modes l>lmax (and l<2) Note that m<=0 modes are also ignored and a warning given. More... | |
static int | SEOBGetModeNumbersFromModeArray (INT4 modes[][2], LALValue *modearray, int lmax) |
This function populates a dynamically allocated INT4 array to with the modes active in a ModeArray Possible modes with l>lmax are ignored (as well as l<2) Note that m<=0 modes are also ignored and a warning given. More... | |
int | XLALEOBCheckNyquistFrequency (REAL8 m1, REAL8 m2, REAL8 spin1[3], REAL8 spin2[3], UINT4 ell_max, Approximant approx, REAL8 deltaT) |
int | XLALSimIMRSpinPrecEOBWaveformAll (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, SphHarmTimeSeries **hIlm, SphHarmTimeSeries **hJlm, REAL8Vector **seobdynamicsAdaSVector, REAL8Vector **seobdynamicsHiSVector, REAL8Vector **seobdynamicsAdaSHiSVector, REAL8Vector **tVecPmodes, REAL8Vector **hP22_amp, REAL8Vector **hP22_phase, REAL8Vector **hP21_amp, REAL8Vector **hP21_phase, REAL8Vector **hP33_amp, REAL8Vector **hP33_phase, REAL8Vector **hP44_amp, REAL8Vector **hP44_phase, REAL8Vector **hP55_amp, REAL8Vector **hP55_phase, REAL8Vector **alphaJ2P, REAL8Vector **betaJ2P, REAL8Vector **gammaJ2P, REAL8Vector **mergerParams, const REAL8 phi, const REAL8 INdeltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 chi1x, const REAL8 chi1y, const REAL8 chi1z, const REAL8 chi2x, const REAL8 chi2y, const REAL8 chi2z, LALValue *modearray, LALDict *seobflags) |
This function is the master function generating precessing spinning SEOBNRv4P waveforms h+ and hx. More... | |
Go to the source code of this file.
Data Structures | |
struct | approximant |
Macros | |
#define | _LALSIMIMRSPINPRECEOBv4P_C |
#define | debugOutput 0 |
#define | _SEOB_MODES_LMAX 5 |
#define | v4Pwave 451 |
#define | v4PdynamicsVariables 26 |
#define | FREE_ALL |
#define | PRINT_ALL_PARAMS |
Variables | |
struct approximant | v4P = {.name = "SEOBNRv4P", .number = 401} |
struct approximant | v4PHM = {.name = "SEOBNRv4PHM", .number = 402} |
#define _LALSIMIMRSPINPRECEOBv4P_C |
Definition at line 21 of file LALSimIMRSpinPrecEOBv4P.c.
#define debugOutput 0 |
Definition at line 78 of file LALSimIMRSpinPrecEOBv4P.c.
#define _SEOB_MODES_LMAX 5 |
Definition at line 90 of file LALSimIMRSpinPrecEOBv4P.c.
#define v4Pwave 451 |
Definition at line 93 of file LALSimIMRSpinPrecEOBv4P.c.
#define v4PdynamicsVariables 26 |
Definition at line 105 of file LALSimIMRSpinPrecEOBv4P.c.
#define FREE_ALL |
Definition at line 107 of file LALSimIMRSpinPrecEOBv4P.c.
#define PRINT_ALL_PARAMS |
Definition at line 172 of file LALSimIMRSpinPrecEOBv4P.c.
freqMinRad | < OUTPUT, lowest initial 22 mode frequency |
mTotal | < Total mass in units of solar masses |
Definition at line 189 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 198 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 212 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 227 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 309 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Stopping conditions for dynamics integration for SEOBNRv4P.
Definition at line 351 of file LALSimIMRSpinPrecEOBv4P.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 603 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Stopping condition for the high resolution SEOBNRv4.
t | UNUSED |
values | dynamical variable values |
dvalues | dynamical variable time derivative values |
funcParams | physical parameters |
Definition at line 630 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
ModeArray is a structure which allows to select the the co-precessing frame modes to include in the waveform.
This function will create a structure with the default modes for every model
Definition at line 663 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
ModeArray is a structure which allows to select the the co-precessing frame modes to include in the waveform.
This function check if the selected modes are available for a given model
Definition at line 694 of file LALSimIMRSpinPrecEOBv4P.c.
int XLALSimIMRSpinPrecEOBWaveform | ( | REAL8TimeSeries ** | hplus, |
REAL8TimeSeries ** | hcross, | ||
const REAL8 | phiC, | ||
const REAL8 | deltaT, | ||
const REAL8 | m1SI, | ||
const REAL8 | m2SI, | ||
const REAL8 | fMin, | ||
const REAL8 | r, | ||
const REAL8 | inc, | ||
const REAL8 | INspin1[], | ||
const REAL8 | INspin2[], | ||
UNUSED const UINT4 | PrecEOBversion, | ||
LALDict * | LALParams | ||
) |
Standard interface for SEOBNRv4P waveform generator: calls XLALSimIMRSpinPrecEOBWaveformAll.
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)
hplus | < OUTPUT, +-polarization waveform |
hcross | < OUTPUT, x-polarization waveform |
phiC | < coalescence orbital phase (rad) |
deltaT | < sampling time step |
m1SI | < mass-1 in SI unit (kg) |
m2SI | < 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 |
LALParams | < Dictionary of additional wf parameters |
Definition at line 763 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function returns the maximum ell in the mode array.
Note that m<=0 modes are ignored and a warning given.
modearray | < Input: ModeArray structure |
lmax | < Input: maximum value of l to explore -- possible modes with l>lmax will be ignored |
Definition at line 958 of file LALSimIMRSpinPrecEOBv4P.c.
SphHarmTimeSeries* XLALSimIMRSpinPrecEOBModes | ( | const REAL8 | deltaT, |
const REAL8 | m1SI, | ||
const REAL8 | m2SI, | ||
const REAL8 | fMin, | ||
const REAL8 | r, | ||
const REAL8 | INspin1[], | ||
const REAL8 | INspin2[], | ||
UNUSED const UINT4 | PrecEOBversion, | ||
LALDict * | LALParams | ||
) |
Standard interface for SEOBNRv4P modes generator: calls XLALSimIMRSpinPrecEOBWaveformAll.
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)
deltaT | < sampling time step |
m1SI | < mass-1 in SI unit (kg) |
m2SI | < mass-2 in SI unit (kg) 8 |
fMin | < starting frequency (Hz) |
r | < luminosity distance in SI unit (m) |
INspin1 | < spin1 |
INspin2 | < spin2 |
PrecEOBversion | < Precessing EOB waveform generator model |
LALParams | < Dictionary of additional wf parameters |
Definition at line 988 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1264 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1311 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1332 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1352 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1394 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1413 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1438 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1480 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Definition at line 1499 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
seobdynamics | < Output: pointer to the SOBdynamics |
retLen | < Input: length of dynamics data to allocate |
Definition at line 1506 of file LALSimIMRSpinPrecEOBv4P.c.
Functions to calculate symmetrized and antisymmetrized combinations of the dimensionless spins projected on the radiation frame Z-axis (L or LN)
Definition at line 1577 of file LALSimIMRSpinPrecEOBv4P.c.
Definition at line 1580 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Function to calculate tplspin See discussion below Eq.
4 of PRD 89, 061502(R) [arXiv:1311.2544] (2014)
Definition at line 1588 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Function to calculate normalized spin of the deformed-Kerr background in SEOBNRv1.
Eq. 5.2 of Barausse and Buonanno PRD 81, 084024 (2010) [arXiv:0912.3517]. Identical to XLALSimIMRSpinEOBCalculateSigmaKerr, except that the input spins are in units of mTotal^2
sigmaKerr | < OUTPUT, normalized (to total mass) spin of deformed-Kerr |
s1 | < spin vector 1, in units of mTotal^2 |
s2 | < spin vector 2, in units of mTotal^2 |
Definition at line 1620 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
Function to calculate normalized spin of the test particle in SEOBNRv1.
Eq. 5.3 of Barausse and Buonanno PRD 81, 084024 (2010) [arXiv:0912.3517]. Identical to XLALSimIMRSpinEOBCalculateSigmaStar, except that the input spins are in units of mTotal^2
sigmaStar | < OUTPUT, normalized (to total mass) spin of test particle |
mass1 | < mass 1 |
mass2 | < mass 2 |
s1 | < spin vector 1, in units of mTotal^2 |
s2 | < spin vector 2, in units of mTotal^2 |
Definition at line 1638 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes quantities (polardynamics, omega, s1dotZ, s2dotZ, hamiltonian) derived from the dynamics as output by the integrator, and returns a SEOBdynamics struct.
Two choices for Z: L or LN. Note: this function also applies when the spins are almost aligned and v4 is used.
seobdynamics | < Output, double pointer to SEOBdynamics struct. If points to an existing struct, the latter will be destroyed |
dynamics | < Input, array containing the dynamics as output by the integrator |
retLen | < Input, length of the dynamics |
seobParams | < SEOB parameters |
flagHamiltonianDerivative | < flag to choose between numerical and analytical Hamiltonian derivatives |
flagZframe | < flag to choose Z direction of the frame, LN or L |
Definition at line 1659 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes initial conditions for SEOBNRv4P.
ICvalues | < Output: vector with initial conditions |
MfMin | < Input: dimensionless initial frequency (in units of 1/mTotal) |
m1 | < Input: mass 1 (solar masses) |
m2 | < Input: mass 2 (solar masses) |
chi1 | < Input: dimensionless spin 1 (in units of m1^2) |
chi2 | < Input: dimensionless spin 2 (in units of m2^2) |
seobParams | < SEOB params |
flagHamiltonianDerivative | < flag to decide wether to use analytical or numerical derivatives |
Definition at line 1869 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function converts a spin-aligned dynamics as output by the Runge-Kutta integrator to a generic-spin dynamics.
Spin-aligned dynamics format: t, r, phi, pr, pphi Generic-spin dynamics format: t, x, y, z, px, py, pz, s1x, s1y, s1z, s2x, s2y, s2z, phiMod, phiDMod
dynamics | < Output: pointer to array for the generic-spin dynamics |
dynamics_spinaligned | < Input: array for the aligned-spin dynamics |
retLen | < Input: length of dynamics |
chi1 | < Input: spin 1 aligned component (dimensionless) |
chi2 | < Input: spin 2 aligned component (dimensionless) |
seobParams | < SEOB params |
Definition at line 1996 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function integrates the SEOBNRv4P dynamics.
Output is given either on the adaptive sampling coming out of the Runge Kutta integrator, with no interpolation being made, or on the constant sampling specified by deltaT. Either analytical or numerical derivatives of the Hamiltonian are used depending on the flag flagHamiltonianDerivative. Only numerical derivatives have been shown to work as of June 2019. When spins are flagged as almost aligned, falls back to spin-aligned dynamics.
dynamics | < Output: pointer to array for the dynamics |
retLenOut | < Output: length of the output dynamics |
ICvalues | < Input: vector with initial conditions |
EPS_ABS | < Input: absolute accuracy for adaptive Runge-Kutta integrator |
EPS_REL | < Input: relative accuracy for adaptive Runge-Kutta integrator |
deltaT | < Input: timesampling step in geometric units - when flagConstantSampling is False, used internally only to initialize adaptive step |
deltaT_min | < Input: minimal timesampling step in geometric units when using adaptive steps with flagConstantSampling set to False - set to 0 to ignore |
tstart | < Input: starting time of the integration |
tend | < Input: max time of the integration - normally, the integration stops when stopping condition is met, and this is ignored |
seobParams | < SEOB params |
flagConstantSampling | < flag to decide wether to use constant sampling with deltaT in output instead of adaptive sampling |
flagHamiltonianDerivative | < flag to decide wether to use analytical or numerical derivatives |
Definition at line 2060 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function generates a waveform mode for a given SEOB dynamics.
hlm | < Output: hlm in complex amplitude / phase form |
l | < Input: mode index l |
m | < Input: mode index m |
seobdynamics | < Input: SEOB dynamics |
nqcCoeffs | < Input: NQC coeffs |
seobParams | < SEOB params |
includeNQC | < flag to choose wether or not to include NQC |
Definition at line 2270 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function generates all waveform modes as a list for a given SEOB dynamics.
listhlm | < Output: list of modes for hlm |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
seobdynamics | < Input: SEOB dynamics |
listnqcCoeffs | < Input: list of NQCs |
seobParams | < SEOB params |
flagNQC | < flag to choose wether or not to include NQC |
Definition at line 2421 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function finds the peak of omega.
Note that there are various possibilities as of what is returned if tPeakOmega is not found at first. In particular, by default, if there is no peak found, the last point of the dynamics is used.
tPeakOmega | < Output: time of peak of Omega if found (see inside XLALSimLocateOmegaTime for what is returned otherwise) |
foundPeakOmega | < Output: flag indicating wether tPeakOmega has been found |
dynamics | < Input: array for dynamics |
seobdynamics | < Input: SEOB dynamics object |
retLen | < Input: length of dynamics |
seobParams | < SEOB params |
flagHamiltonianDerivative | < flag to decide wether to use analytical or numerical derivatives |
Definition at line 2469 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function looks for the peak of a mode amplitude.
Note that the internals are complicated, see XLALSimLocateAmplTime.
tPeakAmp | < Output: time of peak of amplitude if found (see inside XLALSimLocateAmplTime for what is returned otherwise) |
foundPeakAmp | < Output: flag indicating wether tPeakOmega has been found |
hlm | < Input: mode in complex amplitude/phase form |
seobdynamics | < Input: SEOB dynamics object |
retLen | < Input: length of dynamics |
Definition at line 2532 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes all extended dynamics values at a given time by interpolating the dynamics array.
We build a cubic spline limited to +- 20 samples on each side of the time of interest.
seobdynamics_values | < Output: pointer to vector for seobdynamics interpolated values |
t | < Input: time at which to evaluate |
seobdynamics | < Input: SEOB dynamics |
Definition at line 2582 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
S1 | <Output: S1 in L-n frame |
S2 | <Output: S2 in L-n frame |
seobvalues | <Input: vector of extended dynamics |
m1 | <Input: mass of the first object in solar masses |
m2 | <Input: mass of the second object in solar masses |
flagZframe | <Input: whether to compute the L_N or L frame |
Definition at line 2644 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the J vector.
J | < Output: pointer to vector J |
seobvalues | < Input: vector for extended dynamics values |
seobParams | < SEOB params |
Definition at line 2724 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the L-hat vector.
L | < Output: pointer to vector L |
seobvalues | < Input: vector for extended dynamics values |
seobParams | < SEOB params |
flagZframe | <Input: whether to compute the L_N or L frame |
Definition at line 2772 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the Jframe unit vectors, with e3J along Jhat.
Convention: if (ex, ey, ez) is the initial I-frame, e1J chosen such that ex is in the plane (e1J, e3J) and ex.e1J>0. In the case where e3J and x happen to be close to aligned, we continuously switch to another prescription with y playing the role of x
e1J | < Output: vector for e1J, already allocated |
e2J | < Output: vector for e2J, already allocated |
e3J | < Output: vector for e3J, already allocated |
JVec | < Input: vector J |
Definition at line 2833 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes Euler angles I2J given the unit vectors of the Jframe.
alphaI2J | < Output: Euler angle alpha I2J |
betaI2J | < Output: Euler angle beta I2J |
gammaI2J | < Output: Euler angle gamma I2J |
e1J | < Input: unit Jframe vector e1J |
e2J | < Input: unit Jframe vector e2J |
e3J | < Input: unit Jframe vector e3J |
Definition at line 2925 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the NQC coefficients for a list of mode contributions.
nqcCoeffsList | < Output: non-quasi-circular coefficients as a list for each mode |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
tPeakOmega | < Input: time of peak of Omega |
seobdynamics | < Input: SEOB dynamics |
seobParams | < Input: SEOB params |
chi1_omegaPeak | < Input: dimensionless spin 1 at peak of omega in L_N frame |
chi2_omegaPeak | < Input: dimensionless spin 2 at peak of omega in L_N frame |
Definition at line 2954 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function finds the index in a vector such that the value at the index closest to an input value.
Assumes the input vector is increasing (typically, times or frequencies of series).
vec | < Input: monotonically increasing vector |
value | < Input: value to look for |
Definition at line 3115 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function finds the value in a vector that is closest to an input value.
Assumes the input vector is increasing (typically, times or frequencies of series). Purely for convenience.
vec | < Input: monotonically increasing vector |
value | < Input: value to look for |
Definition at line 3139 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
finalMass | < Output: final mass computed from fit (scaled by M) |
finalSpin | < Output: final spin computed from fit (dimensionless) |
seobvalues | < Input: vector for dynamics values at time of peak of omega |
seobParams | < Input: SEOB params |
flagZframe | < Input: Whether to use the L_N or L frame |
Definition at line 3147 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function attaches the ringdown to the P-frame modes hlm.
Here seobvalues have been interpolated from seobdynamics at tPeakOmega (can differ from tAttach).
listhPlm_RDattached | < Output: list of extended modes hlm with RD attached |
sigmaQNMlm0 | < Output: list of QNM complex frequency for modes lm, 0th overtone (dimensionless) |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
finalMass | < Input: final mass computed from fit (scaled by M) |
finalSpin | < Input: final spin computed from fit (dimensionless) |
listhPlm | < Input: list of modes hlm |
deltaT | < Input: time step |
retLen | < Input: length of the input modes and dynamics |
retLenRDPatch | < Input: length of the ringdown patch |
tAttach | < Input: time of attachment |
seobvalues | < Input: vector for dynamics values at time of peak of omega |
seobdynamics | < Input: SEOB dynamics |
seobParams | < SEOB params |
flagZframe | < Input: whether to use L_N or L frame for spin projections |
debug | < Input: flag to print debug information |
Definition at line 3198 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function constructs the joined vector of times (AdaS+HiS+RDpatch) and keeps the jonction indices and times RDpatch is the extension of HiS for the RD, keeping the same constant sampling (indexJoinHiS, tJoinHiS) is given by the first time sample >=tstartHiS (indexJoinAttach, tJoinAttach) is given by the first time sample >=tAttach.
tVecPmodes | < Output: vector of times for P-modes (AdaS+HiS+RDpatch) |
retLenPmodes | < Output: length of output vector of times for P-modes |
tJoinHiS | < Output: first time >= tstartHiS |
indexJoinHiS | < Output: first index >= tstartHiS |
tJoinAttach | < Output: first time >= tAttach |
indexJoinAttach | < Output: first index >= tAttach |
retLenHiSRDpatch | < Input: length of RD patch to be added at the end of HiS with the same constant sampling |
deltaTHiS | < Input: time step for the high sampling |
tstartHiS | < Input: time of start of HiS |
tAttach | < Input: time of attachment |
seobdynamicsAdaS | < Input: SEOB dynamics with adaptive-sampling |
seobdynamicsHiS | < Input: SEOB dynamics with high-sampling |
Definition at line 3441 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function copies dynamics from AdaS<HiS and HiS<tAttach to form joined dynamics, ending at the last time sample <tAttach.
seobdynamicsJoined | < Output: pointer to joined dynamics |
seobdynamics1 | < Input: first dynamics |
seobdynamics2 | < Input: second dynamics |
indexJoin12 | < Input: index where to join the two dynamics |
indexEnd2 | < Input: index of the joined dynamics where to stop dynamics 2 (excluded) |
Definition at line 3512 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function copies dynamics from AdaS<HiS and HiS<tAttach to form joined dynamics, ending at the last time sample <tAttach.
listhlm_joined | < Output: list of joined modes |
listhlm_1 | < Input: list of modes 1 |
listhlm_2 | < Input: list of modes 2 |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
indexJoin12 | < Input: index where to join the two dynamics |
Definition at line 3557 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function finds the (first) index and time with the largest sum-of-squares amplitude - discrete, no interpolation The sum-of-squares amplitude is the sum of the amplitude square of all modes of the waveform, rotationally invariant for any l.
This function is l=2 only, requires 22 to be present and uses 21 if present.
tPeak | < Output: time of peak |
indexPeak | < Output: index of peak |
listhPlm | < Input: list of modes hlm |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
tVec | < Input: vector of times |
Definition at line 3633 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the Euler angles from J-frame to P-frame given the dynamics and basis vectors of the J-frame Angle gamma computed according to minimal rotation condition with gamma=-alpha initially Note that all quantities in the dynamics and the basis vectors eJ are expressed in the initial I-frame.
alphaJ2P | < Output: pointer to vector for alpha J2P |
betaJ2P | < Output: pointer to vector for beta J2P |
gammaJ2P | < Output: pointer to vector for gamma J2P |
e1J | < Input: unit Jframe vector e1J |
e2J | < Input: unit Jframe vector e2J |
e3J | < Input: unit Jframe vector e3J |
retLen | < Input: total length of Euler angles data to be allocated (length of P-modes) |
indexStop | < Input: index where we stop the computation (excluded, index of time of attachment) |
seobdynamics | <Input: SEOB dynamics (joined AdaS+HiS, up to tAttach) |
seobParams | < SEOB params |
flagZframe | < flag to choose Z direction of the frame, LN or L |
Definition at line 3706 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function extends Euler angles J2P according to the prescription flagEulerextension after attachment point Two prescriptions: constant angles, or simple precession around Jfinal at rate omegaQNM220-omegaQNM210 If SpinsAlmostAligned, all Euler angles are set to 0.
alphaJ2P | < Output: vector for alpha J2P, already allocated |
betaJ2P | < Output: vector for beta J2P, already allocated |
gammaJ2P | < Output: vector for gamma J2P, already allocated |
sigmaQNM220 | < Input: complex frequency for QNM 22, 0th overtone |
sigmaQNM210 | < Input: complex frequency for QNM 21, 0th overtone |
tVec | < Input: time vector for Euler angles data (length of P-modes) |
retLen | < Input: total length of Euler angles data (length of P-modes) |
indexStart | < Input: index where we start the extension (included, index of time of attachment) |
seobParams | < SEOB params |
flagEulerextension | < flag indicating how to extend the Euler angles post-merger |
flip | << a flag of whether to flip the sign of the precession frequency |
Definition at line 3912 of file LALSimIMRSpinPrecEOBv4P.c.
These functions compute the amplitude and phase of a Wigner coefficient Dlmmp, given Euler angles of an active rotation.
Convention for Wigner matrices (mp stands for m', * for conjugation): for the active rotation from the I-frame to the P-frame, parameterized by Euler angles (alpha, beta, gamma) in the ZYZ convention
\[ h^{P}_{lm} = \sum_{m'} D^{l}_{m m'} h^{I}_{lm'}\]
\[ h^{I}_{lm} = \sum_{m'} D^{l}_{m m'}* h^{P}_{lm'}\]
\[ D^{l}_{m m'} = d^{l}_{m m'}(\beta) \exp{i m \alpha} \exp{i m' \gamma}\]
with the notation \( c,s = \cos, \sin (\beta/2)\), \( k_{min} = \max(0,m-m'), k_{max} = \min(l+m, l-m')\):
\[d^{l}_{m m'}(\beta) = \sum_{k=k_{min}}^{k_{max}} \frac{(-1)^{k+m'-m}}{k!} \frac{\sqrt{(l+m)!(l-m)!(l+m')!(l-m')!}}{(l+m-k)!(l-m'-k)!(k-m+m')!} c^{2l+m-m'-2k} s^{2k-m+m'}\]
Definition at line 4013 of file LALSimIMRSpinPrecEOBv4P.c.
Definition at line 4016 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the hJlm Re/Im timeseries (fixed sampling) from hPlm amp/phase modes and Euler angles J2P (irregular sampling).
The Wigner rotation coefficients are first computed on the irregular sampling. We assume that the hPlm and Euler angles are all given on a common time vector. P-frame modes hPlmp should have mp>0 only We will generate the modes mp<0 using the symmetry relation hPl-mp = (-1)^l hPlmp* All modes with l<=modes_lmax will be created in output, and will be 0 for values of l possibly absent from listhPlm
hJlm | < Output: hJlm time series, will contain complex values on fixed sampling |
modes | < Input: array of modes (l,m) |
nmodes | < Input: number of modes (l,m) |
modes_lmax | < Input: maximum value of l in modes (l,m) |
deltaT | < Input: time step for the hJlm timeseries |
retLenTS | < Input: number of samples for the hJlm timeseries |
tVecPmodes | < Input: irregular time vector on which the hPlm and Euler angles are given |
listhPlm | < Input: list of P-frame modes hPlm |
alphaJ2P | < Input: vector for Euler angle alpha J2P |
betaJ2P | < Input: vector for Euler angle beta J2P |
gammaJ2P | < Input: vector for Euler angle gamma J2P |
flagSymmetrizehPlminusm | < Input: flag indicating wether the P-frame modes m<0 are generated with the symmetry hP_l-m ~ (-1)^l hP_lm* |
Definition at line 4031 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function computes the hIlm Re/Im timeseries (fixed sampling) from hJlm Re/Im timeseries (same sampling).
This is a simple rotation, sample-by-sample, with constant Wigner coefficients. See the comment before SEOBWignerDAmp for explanation of conventions, and Appendix A of Babak et al, Phys. Rev. D 95, 024010, 2017 [arXiv:1607.05661] for a general discussion.
hIlm | < Output: hIlm time series, complex values on fixed sampling |
hJlm | < Output: hJlm time series, complex values on fixed sampling |
modes_lmax | < Input: maximum value of l in modes (l,m) |
alphaI2J | < Input: Euler angle alpha I->J |
betaI2J | < Input: Euler angle beta I->J |
gammaI2J | < Input: Euler angle gamma I->J |
deltaT | < Input: time step, necessary to initialize new timeseries |
Definition at line 4303 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function combines the modes hIlm timeseries with the sYlm to produce the polarizations hplus, hcross.
hplusTS | < Output: time series for hplus, already created |
hcrossTS | < Output: time series for hplus, already created |
modes_lmax | < Input: maximum value of l |
hIlm | < Input: list with time series for each mode hIlm |
amp0 | < Input: amplitude prefactor |
inc | < Input: inclination |
phi | < Input: phase |
Definition at line 4396 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function gets the number of modes present in a mode array, ignoring modes l>lmax (and l<2) Note that m<=0 modes are also ignored and a warning given.
modearray | < Input: ModeArray structure |
lmax | < Input: maximum value of l to explore -- possible modes with l>lmax will be ignored |
Definition at line 4445 of file LALSimIMRSpinPrecEOBv4P.c.
|
static |
This function populates a dynamically allocated INT4 array to with the modes active in a ModeArray Possible modes with l>lmax are ignored (as well as l<2) Note that m<=0 modes are also ignored and a warning given.
modes | < Output: array of dimension (nmodes,2) with mode numbers (l,m) |
modearray | < Input: ModeArray structure |
lmax | < Input: maximum value of l to explore -- possible modes with l>lmax will be ignored |
Definition at line 4472 of file LALSimIMRSpinPrecEOBv4P.c.
int XLALEOBCheckNyquistFrequency | ( | REAL8 | m1, |
REAL8 | m2, | ||
REAL8 | spin1[3], | ||
REAL8 | spin2[3], | ||
UINT4 | ell_max, | ||
Approximant | approx, | ||
REAL8 | deltaT | ||
) |
Definition at line 4503 of file LALSimIMRSpinPrecEOBv4P.c.
int XLALSimIMRSpinPrecEOBWaveformAll | ( | REAL8TimeSeries ** | hplus, |
REAL8TimeSeries ** | hcross, | ||
SphHarmTimeSeries ** | hIlm, | ||
SphHarmTimeSeries ** | hJlm, | ||
REAL8Vector ** | seobdynamicsAdaSVector, | ||
REAL8Vector ** | seobdynamicsHiSVector, | ||
REAL8Vector ** | seobdynamicsAdaSHiSVector, | ||
REAL8Vector ** | tVecPmodes, | ||
REAL8Vector ** | hP22_amp, | ||
REAL8Vector ** | hP22_phase, | ||
REAL8Vector ** | hP21_amp, | ||
REAL8Vector ** | hP21_phase, | ||
REAL8Vector ** | hP33_amp, | ||
REAL8Vector ** | hP33_phase, | ||
REAL8Vector ** | hP44_amp, | ||
REAL8Vector ** | hP44_phase, | ||
REAL8Vector ** | hP55_amp, | ||
REAL8Vector ** | hP55_phase, | ||
REAL8Vector ** | alphaJ2P, | ||
REAL8Vector ** | betaJ2P, | ||
REAL8Vector ** | gammaJ2P, | ||
REAL8Vector ** | mergerParams, | ||
const REAL8 | phi, | ||
const REAL8 | INdeltaT, | ||
const REAL8 | m1SI, | ||
const REAL8 | m2SI, | ||
const REAL8 | fMin, | ||
const REAL8 | r, | ||
const REAL8 | inc, | ||
const REAL8 | chi1x, | ||
const REAL8 | chi1y, | ||
const REAL8 | chi1z, | ||
const REAL8 | chi2x, | ||
const REAL8 | chi2y, | ||
const REAL8 | chi2z, | ||
LALValue * | modearray, | ||
LALDict * | seobflags | ||
) |
This function is the master function generating precessing spinning SEOBNRv4P 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 SEOBNRv4 dynamics is used. However, the waveforms are then generated according to the SEOBNRv4P 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 with adaptive sampling (AdaS) STEP 3) Step back and evolve EOB trajectory at high sampling rate (HiS) STEP 4) Get final J/L/spins from HiS dynamics at peak of Omega, compute constant angles EulerI2J STEP 5) Compute P-frame 22 mode amp/phase on HiS and compute NQC coefficients STEP 6) Compute P-frame amp/phase for all modes on HiS, now including NQC STEP 7) Attach RD to the P-frame waveform STEP 8) Build the joined dynamics AdaS+HiS up to attachment, joined P-modes AdaS+HiS+RDpatch STEP 9) Compute Euler angles J2P from AdaS and HiS dynamics up to attachment STEP 10) Compute Euler angles J2P extension after attachment STEP 11) Compute modes hJlm on the output time series by rotating and interpolating the modes hPlm STEP 12) Rotate waveform from J-frame to the output I-frame on timeseries-sampling (constant Wigner coeffs) STEP 13) Compute hplus, hcross from I-frame waveform on timeseries sampling STEP -1) Cleanup
hplus | < Main output: hplus GW polarization time series |
hcross | < Main output: hcross GW polarization time series |
hIlm | < Spherical modes time series for the waveform in the initial inertial frame |
hJlm | < Spherical modes time series for the waveform in the final-J inertial frame |
seobdynamicsAdaSVector | < Vector for extended dynamics values, adaptive sampling part |
seobdynamicsHiSVector | < Vector for extended dynamics values, high sampling part |
seobdynamicsAdaSHiSVector | < Vector for extended joined dynamics values |
tVecPmodes | < Time vector for the P-modes |
hP22_amp | < Vector for the hP22 mode amplitude |
hP22_phase | < Vector for the hP22 mode phase |
hP21_amp | < Vector for the hP21 mode amplitude |
hP21_phase | < Vector for the hP21 mode phase |
hP33_amp | < Vector for the hP33 mode amplitude |
hP33_phase | < Vector for the hP33 mode phase |
hP44_amp | < Vector for the hP44 mode amplitude |
hP44_phase | < Vector for the hP44 mode phase |
hP55_amp | < Vector for the hP55 mode amplitude |
hP55_phase | < Vector for the hP55 mode phase |
alphaJ2P | < Vector for the Euler angle alphaJ2P |
betaJ2P | < Vector for the Euler angle betaJ2P |
gammaJ2P | < Vector for the Euler angle gammaJ2P |
mergerParams | < Parameters at merger |
phi | < Input: phase |
INdeltaT | < Input: sampling time step in SI |
m1SI | < Input: mass of first object in SI |
m2SI | < Input: mass of second object in SI |
fMin | < Input: fMin |
r | < Input: luminosity distance in SI |
inc | < Input: inclination |
chi1x | < Input: spin1 x-component, dimensionless (in units of m1^2) |
chi1y | < Input: spin1 y-component, dimensionless (in units of m1^2) |
chi1z | < Input: spin1 z-component, dimensionless (in units of m1^2) |
chi2x | < Input: spin2 x-component, dimensionless (in units of m2^2) |
chi2y | < Input: spin2 y-component, dimensionless (in units of m2^2) |
chi2z | < Input: spin2 z-component, dimensionless (in units of m2^2) |
modearray | < Input: mode array for the hlm modes (m>0) to be generated in the P-frame -- has to include (2,2) mode -- modes with l larger than _SEOB_MODES_LMAX will be ignored |
seobflags | < Input: dictionary of SEOB flags |
Definition at line 4571 of file LALSimIMRSpinPrecEOBv4P.c.
struct approximant v4P = {.name = "SEOBNRv4P", .number = 401} |
Definition at line 1 of file LALSimIMRSpinPrecEOBv4P.c.
struct approximant v4PHM = {.name = "SEOBNRv4PHM", .number = 402} |
Definition at line 1 of file LALSimIMRSpinPrecEOBv4P.c.