LALSimulation  5.4.0.1-b72065a
LALSimIMRSEOBNRv4ROM.c File Reference

Prototypes

static UNUSED void SEOBNRv4ROM_Init_LALDATA (void)
 Setup SEOBNRv4ROM model using data files installed in $LAL_DATA_PATH. More...
 
static UNUSED int SEOBNRv4ROM_Init (const char dir[])
 Setup SEOBNRv4ROM model using data files installed in dir. More...
 
static UNUSED bool SEOBNRv4ROM_IsSetup (void)
 Helper function to check if the SEOBNRv4ROM model has been initialised. More...
 
static UNUSED int SEOBNRROMdataDS_Init (SEOBNRROMdataDS *romdata, const char dir[])
 
static UNUSED void SEOBNRROMdataDS_Cleanup (SEOBNRROMdataDS *romdata)
 
static int TP_Spline_interpolation_3d (REAL8 eta, REAL8 chi1, REAL8 chi2, gsl_vector *cvec_amp, gsl_vector *cvec_phi, int nk_amp, int nk_phi, int nk_max, int ncx, int ncy, int ncz, const double *etavec, const double *chi1vec, const double *chi2vec, gsl_vector *c_amp, gsl_vector *c_phi)
 
static UNUSED int SEOBNRROMdataDS_Init_submodel (UNUSED SEOBNRROMdataDS_submodel **submodel, UNUSED const char dir[], UNUSED const char grp_name[])
 
static UNUSED void SEOBNRROMdataDS_Cleanup_submodel (SEOBNRROMdataDS_submodel *submodel)
 
static UNUSED int SEOBNRv4ROMCore (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, double phiRef, double fRef, double distance, double inclination, double Mtot_sec, double eta, double chi1, double chi2, const REAL8Sequence *freqs, double deltaF, int nk_max, LALDict *LALparams, NRTidal_version_type NRTidal_version)
 Core function for computing the ROM waveform. More...
 
static UNUSED void SEOBNRROMdataDS_coeff_Init (SEOBNRROMdataDS_coeff **romdatacoeff, int nk_amp, int nk_phi)
 
static UNUSED void SEOBNRROMdataDS_coeff_Cleanup (SEOBNRROMdataDS_coeff *romdatacoeff)
 
static size_t NextPow2 (const size_t n)
 
static UNUSED void SplineData_Destroy (SplineData *splinedata)
 
static UNUSED void SplineData_Init (SplineData **splinedata, int ncx, int ncy, int ncz, const double *etavec, const double *chi1vec, const double *chi2vec)
 
static UNUSED int SEOBNRv4ROMTimeFrequencySetup (gsl_spline **spline_phi, gsl_interp_accel **acc_phi, REAL8 *Mf_final, REAL8 *Mtot_sec, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, REAL8 *Mf_ROM_min, REAL8 *Mf_ROM_max)
 
static UNUSED REAL8 Interpolate_Coefficent_Matrix (gsl_vector *v, REAL8 eta, REAL8 chi, int ncx, int ncy, gsl_bspline_workspace *bwx, gsl_bspline_workspace *bwy)
 
static UNUSED void GlueAmplitude (SEOBNRROMdataDS_submodel *submodel_lo, SEOBNRROMdataDS_submodel *submodel_hi, gsl_vector *amp_f_lo, gsl_vector *amp_f_hi, double amp_pre_lo, double amp_pre_hi, const double Mfm, gsl_interp_accel **acc_amp, gsl_spline **spline_amp)
 
static UNUSED void GluePhasing (SEOBNRROMdataDS_submodel *submodel_lo, SEOBNRROMdataDS_submodel *submodel_hi, gsl_vector *phi_f_lo, gsl_vector *phi_f_hi, const double Mfm, gsl_interp_accel **acc_phi_out, gsl_spline **spline_phi_out)
 
static UNUSED int SEOBNRROMdataDS_Init_submodel (SEOBNRROMdataDS_submodel **submodel, UNUSED const char dir[], UNUSED const char grp_name[])
 
int SEOBNRROMdataDS_Init (UNUSED SEOBNRROMdataDS *romdata, UNUSED const char dir[])
 
int XLALSimIMRSEOBNRv4ROMFrequencySequence (struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, LALDict *LALparams, NRTidal_version_type NRTidal_version)
 Compute waveform in LAL format at specified frequencies for the SEOBNRv4_ROM model. More...
 
int XLALSimIMRSEOBNRv4ROM (struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, LALDict *LALparams, NRTidal_version_type NRTidal_version)
 Compute waveform in LAL format for the SEOBNRv4_ROM model. More...
 
int XLALSimIMRSEOBNRv4ROMTimeOfFrequency (REAL8 *t, REAL8 frequency, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
 Compute the 'time' elapsed in the ROM waveform from a given starting frequency until the ringdown. More...
 
int XLALSimIMRSEOBNRv4ROMFrequencyOfTime (REAL8 *frequency, REAL8 t, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
 Compute the starting frequency so that the given amount of 'time' elapses in the ROM waveform from the starting frequency until the ringdown. More...
 

Go to the source code of this file.

Data Structures

struct  SEOBNRROMdataDS_coeff
 
struct  SEOBNRROMdataDS_submodel
 
struct  SEOBNRROMdataDS
 
struct  SplineData
 

Typedefs

typedef int(* load_dataPtr) (const char *, gsl_vector *, gsl_vector *, gsl_matrix *, gsl_matrix *, gsl_vector *)
 

Variables

static SEOBNRROMdataDS __lalsim_SEOBNRv4ROMDS_data
 

Typedef Documentation

◆ load_dataPtr

typedef int(* load_dataPtr) (const char *, gsl_vector *, gsl_vector *, gsl_matrix *, gsl_matrix *, gsl_vector *)

Definition at line 118 of file LALSimIMRSEOBNRv4ROM.c.

Function Documentation

◆ SEOBNRv4ROM_Init_LALDATA()

static UNUSED void SEOBNRv4ROM_Init_LALDATA ( void  )
static

Setup SEOBNRv4ROM model using data files installed in $LAL_DATA_PATH.

Definition at line 1649 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRv4ROM_Init()

static int SEOBNRv4ROM_Init ( const char  dir[])
static

Setup SEOBNRv4ROM model using data files installed in dir.

Definition at line 261 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRv4ROM_IsSetup()

static bool SEOBNRv4ROM_IsSetup ( void  )
static

Helper function to check if the SEOBNRv4ROM model has been initialised.

Definition at line 278 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_Init() [1/2]

static UNUSED int SEOBNRROMdataDS_Init ( SEOBNRROMdataDS *  romdata,
const char  dir[] 
)
static

◆ SEOBNRROMdataDS_Cleanup()

static void SEOBNRROMdataDS_Cleanup ( SEOBNRROMdataDS *  romdata)
static

Definition at line 529 of file LALSimIMRSEOBNRv4ROM.c.

◆ TP_Spline_interpolation_3d()

static int TP_Spline_interpolation_3d ( REAL8  eta,
REAL8  chi1,
REAL8  chi2,
gsl_vector *  cvec_amp,
gsl_vector *  cvec_phi,
int  nk_amp,
int  nk_phi,
int  nk_max,
int  ncx,
int  ncy,
int  ncz,
const double *  etavec,
const double *  chi1vec,
const double *  chi2vec,
gsl_vector *  c_amp,
gsl_vector *  c_phi 
)
static

Definition at line 346 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_Init_submodel() [1/2]

static UNUSED int SEOBNRROMdataDS_Init_submodel ( UNUSED SEOBNRROMdataDS_submodel **  submodel,
UNUSED const char  dir[],
UNUSED const char  grp_name[] 
)
static

◆ SEOBNRROMdataDS_Cleanup_submodel()

static void SEOBNRROMdataDS_Cleanup_submodel ( SEOBNRROMdataDS_submodel *  submodel)
static

Definition at line 466 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRv4ROMCore()

static int SEOBNRv4ROMCore ( COMPLEX16FrequencySeries **  hptilde,
COMPLEX16FrequencySeries **  hctilde,
double  phiRef,
double  fRef,
double  distance,
double  inclination,
double  Mtot_sec,
double  eta,
double  chi1,
double  chi2,
const REAL8Sequence freqs_in,
double  deltaF,
int  nk_max,
LALDict *  LALparams,
NRTidal_version_type  NRTidal_version 
)
static

Core function for computing the ROM waveform.

Interpolate projection coefficient data and evaluate coefficients at desired (q, chi). Construct 1D splines for amplitude and phase. Compute strain waveform from amplitude and phase.

Interpolate projection coefficient data and evaluate coefficients at desired (q, chi1, chi2). Construct 1D splines for amplitude and phase. Compute strain waveform from amplitude and phase.

Parameters
hptildeOutput: Frequency-domain waveform h+
hctildeOutput: Frequency-domain waveform hx
phiRefOrbital phase (rad)
fRefReference frequency
distanceDistance of source (m)
inclinationInclination angle of source (rad)
Mtot_secTotal source mass in seconds
etaSymmetric mass ratio
chi1Dimensionless aligned spin on companion 1
chi2Dimensionless aligned spin on companion 2
freqs_inFrequency points at which to evaluate the waveform (Hz)
deltaFSampling frequency (Hz). If deltaF > 0, the frequency points given in freqs are uniformly spaced with spacing deltaF. Otherwise, the frequency points are spaced non-uniformly. Then we will use deltaF = 0 to create the frequency series we return.
nk_maxtruncate interpolants at SVD mode nk_max; don't truncate if nk_max == -1
LALparamsLAL dictionary containing accessory parameters
NRTidal_versionNRTidal version; either NRTidal_V or NRTidalv2_V or NoNRT_V in case of BBH baseline

Definition at line 744 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_coeff_Init()

static void SEOBNRROMdataDS_coeff_Init ( SEOBNRROMdataDS_coeff **  romdatacoeff,
int  nk_amp,
int  nk_phi 
)
static

Definition at line 543 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_coeff_Cleanup()

static void SEOBNRROMdataDS_coeff_Cleanup ( SEOBNRROMdataDS_coeff romdatacoeff)
static

Definition at line 556 of file LALSimIMRSEOBNRv4ROM.c.

◆ NextPow2()

static size_t NextPow2 ( const size_t  n)
static

Definition at line 564 of file LALSimIMRSEOBNRv4ROM.c.

◆ SplineData_Destroy()

static void SplineData_Destroy ( SplineData splinedata)
static

Definition at line 335 of file LALSimIMRSEOBNRv4ROM.c.

◆ SplineData_Init()

static void SplineData_Init ( SplineData **  splinedata,
int  ncx,
int  ncy,
int  ncz,
const double *  etavec,
const double *  chi1vec,
const double *  chi2vec 
)
static

Definition at line 286 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRv4ROMTimeFrequencySetup()

static int SEOBNRv4ROMTimeFrequencySetup ( gsl_spline **  spline_phi,
gsl_interp_accel **  acc_phi,
REAL8 Mf_final,
REAL8 Mtot_sec,
REAL8  m1SI,
REAL8  m2SI,
REAL8  chi1,
REAL8  chi2,
REAL8 Mf_ROM_min,
REAL8 Mf_ROM_max 
)
static

Definition at line 1287 of file LALSimIMRSEOBNRv4ROM.c.

◆ Interpolate_Coefficent_Matrix()

static UNUSED REAL8 Interpolate_Coefficent_Matrix ( gsl_vector *  v,
REAL8  eta,
REAL8  chi,
int  ncx,
int  ncy,
gsl_bspline_workspace *  bwx,
gsl_bspline_workspace *  bwy 
)
static

◆ GlueAmplitude()

static void GlueAmplitude ( SEOBNRROMdataDS_submodel *  submodel_lo,
SEOBNRROMdataDS_submodel *  submodel_hi,
gsl_vector *  amp_f_lo,
gsl_vector *  amp_f_hi,
double  amp_pre_lo,
double  amp_pre_hi,
const double  Mfm,
gsl_interp_accel **  acc_amp,
gsl_spline **  spline_amp 
)
static

Definition at line 568 of file LALSimIMRSEOBNRv4ROM.c.

◆ GluePhasing()

static void GluePhasing ( SEOBNRROMdataDS_submodel *  submodel_lo,
SEOBNRROMdataDS_submodel *  submodel_hi,
gsl_vector *  phi_f_lo,
gsl_vector *  phi_f_hi,
const double  Mfm,
gsl_interp_accel **  acc_phi_out,
gsl_spline **  spline_phi_out 
)
static

Definition at line 631 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_Init_submodel() [2/2]

static UNUSED int SEOBNRROMdataDS_Init_submodel ( SEOBNRROMdataDS_submodel **  submodel,
UNUSED const char  dir[],
UNUSED const char  grp_name[] 
)
static

Definition at line 401 of file LALSimIMRSEOBNRv4ROM.c.

◆ SEOBNRROMdataDS_Init() [2/2]

int SEOBNRROMdataDS_Init ( UNUSED SEOBNRROMdataDS *  romdata,
UNUSED const char  dir[] 
)

Definition at line 479 of file LALSimIMRSEOBNRv4ROM.c.

◆ XLALSimIMRSEOBNRv4ROMTimeOfFrequency()

int XLALSimIMRSEOBNRv4ROMTimeOfFrequency ( REAL8 t,
REAL8  frequency,
REAL8  m1SI,
REAL8  m2SI,
REAL8  chi1,
REAL8  chi2 
)

Compute the 'time' elapsed in the ROM waveform from a given starting frequency until the ringdown.

The notion of elapsed 'time' (in seconds) is defined here as the difference of the frequency derivative of the frequency domain phase between the ringdown frequency and the starting frequency ('frequency' argument). This notion of time is similar to the chirp time, but it includes both the inspiral and the merger ringdown part of SEOBNRv4.

The allowed frequency range for the starting frequency in geometric frequency is [0.00053, 0.135]. The SEOBNRv4 ringdown frequency can be obtained by calling XLALSimInspiralGetFinalFreq().

See XLALSimIMRSEOBNRv4ROMFrequencyOfTime() for the inverse function.

Parameters
tOutput: time (s) elapsed from starting frequency to ringdown
frequencyStarting frequency (Hz)
m1SIMass of companion 1 (kg)
m2SIMass of companion 2 (kg)
chi1Dimensionless aligned component spin 1
chi2Dimensionless aligned component spin 2

Definition at line 1452 of file LALSimIMRSEOBNRv4ROM.c.

◆ XLALSimIMRSEOBNRv4ROMFrequencyOfTime()

int XLALSimIMRSEOBNRv4ROMFrequencyOfTime ( REAL8 frequency,
REAL8  t,
REAL8  m1SI,
REAL8  m2SI,
REAL8  chi1,
REAL8  chi2 
)

Compute the starting frequency so that the given amount of 'time' elapses in the ROM waveform from the starting frequency until the ringdown.

The notion of elapsed 'time' (in seconds) is defined here as the difference of the frequency derivative of the frequency domain phase between the ringdown frequency and the starting frequency ('frequency' argument). This notion of time is similar to the chirp time, but it includes both the inspiral and the merger ringdown part of SEOBNRv4.

If the frequency that corresponds to the specified elapsed time is lower than the ROM starting frequency or above half of the SEOBNRv4 ringdown frequency an error is thrown. The SEOBNRv4 ringdown frequency can be obtained by calling XLALSimInspiralGetFinalFreq().

See XLALSimIMRSEOBNRv4ROMTimeOfFrequency() for the inverse function.

Parameters
frequencyOutput: Frequency (Hz)
tTime (s) at frequency
m1SIMass of companion 1 (kg)
m2SIMass of companion 2 (kg)
chi1Dimensionless aligned component spin 1
chi2Dimensionless aligned component spin 2

Definition at line 1545 of file LALSimIMRSEOBNRv4ROM.c.

Variable Documentation

◆ __lalsim_SEOBNRv4ROMDS_data

SEOBNRROMdataDS __lalsim_SEOBNRv4ROMDS_data
static

Definition at line 116 of file LALSimIMRSEOBNRv4ROM.c.