LALSimulation  5.4.0.1-fe68b98
LALSimIMRPrecessingNRSur.h File Reference

Prototypes

static void NRSur7dq2_Init_LALDATA (void)
 
static void NRSur7dq4_Init_LALDATA (void)
 
static int PrecessingNRSur_Init (PrecessingNRSurData *data, LALH5File *file, UINT4 PrecessingNRSurVersion)
 
static void PrecessingNRSur_LoadFitData (FitData **fit_data, LALH5File *sub, const char *name)
 
static void NRSur7dq4_LoadVectorFitData (VectorFitData **vector_fit_data, LALH5File *sub, const char *name, const size_t size)
 
static void PrecessingNRSur_LoadDynamicsNode (DynamicsNodeFitData **ds_node_data, LALH5File *sub, int i, UINT4 PrecessingNRSurVersion)
 
static void PrecessingNRSur_LoadCoorbitalEllModes (WaveformFixedEllModeData **coorbital_mode_data, LALH5File *file, int i)
 
static void PrecessingNRSur_LoadWaveformDataPiece (LALH5File *sub, WaveformDataPiece **data, bool invert_sign)
 
static bool NRSur7dq2_IsSetup (void)
 
static bool NRSur7dq4_IsSetup (void)
 
static double ipow (double base, int exponent)
 Helper function for integer powers. More...
 
static double NRSur7dq2_eval_fit (FitData *data, double *x)
 
static void NRSur7dq2_eval_vector_fit (double *res, VectorFitData *data, double *x)
 
static int NRSur7dq4_effective_spins (REAL8 *chiHat, REAL8 *chi_a, const double q, const double chi1z, const double chi2z)
 
static double NRSur7dq4_eval_fit (FitData *data, double *x)
 
static void NRSur7dq4_eval_vector_fit (double *res, VectorFitData *data, double *x)
 
double PrecessingNRSur_eval_fit (FitData *data, double *x, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_eval_vector_fit (double *res, VectorFitData *data, double *x, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_normalize_y (double chiANorm, double chiBNorm, double *y)
 
static void PrecessingNRSur_normalize_results (double normA, double normB, gsl_vector **quat, gsl_vector **chiA, gsl_vector **chiB)
 
static void PrecessingNRSur_rotate_spins (gsl_vector **chiA, gsl_vector **chiB, gsl_vector *phi)
 
static void PrecessingNRSur_ds_fit_x (double *x, double q, double *y)
 
static void PrecessingNRSur_assemble_dydt (double *dydt, double *y, double *Omega_coorb_xy, double omega, double *chiA_dot, double *chiB_dot)
 
static double cubic_interp (double xout, double *x, double *y)
 
static gsl_vector * spline_array_interp (gsl_vector *xout, gsl_vector *x, gsl_vector *y)
 
static double PrecessingNRSur_get_omega (size_t node_index, double q, double *y0, PrecessingNRSurData *__sur_data)
 
static REAL8 PrecessingNRSur_get_t_ref (REAL8 omega_ref, REAL8 q, REAL8 *chiA0, REAL8 *chiB0, REAL8 *init_quat, REAL8 init_orbphase, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_get_time_deriv_from_index (double *dydt, int i0, double q, double *y, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_get_time_deriv (double *dtdy, double t, double q, double *y, PrecessingNRSurData *__sur_data)
 
static int PrecessingNRSur_initialize_at_dynamics_node (double *dynamics_data, double t_ref, double q, double *chiA0, double *chiB0, double init_orbphase, double *init_quat, double normA, double normB, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_initialize_RK4_with_half_nodes (double *dynamics_data, double *time_steps, double *dydt0, double *dydt1, double *dydt2, double *dydt3, double normA, double normB, double q, PrecessingNRSurData *__sur_data)
 
static int PrecessingNRSur_initialize_RK4 (double *dynamics_data, double *time_steps, double *dydt0, double *dydt1, double *dydt2, double *dydt3, double normA, double normB, double q, int i0, PrecessingNRSurData *__sur_data)
 
static void PrecessingNRSur_integrate_AB4 (double *dynamics_data, double *time_steps, double *dydt0, double *dydt1, double *dydt2, double *dydt3, double normA, double normB, double q, int i_start, PrecessingNRSurData *__sur_data)
 
static int PrecessingNRSur_IntegrateDynamics (double *dynamics_data, double q, double *chiA0, double *chiB0, double omega_ref, double init_orbphase, double *init_quat, LALDict *LALparams, UINT4 PrecessingNRSurVersion)
 
static void PrecessingNRSur_eval_data_piece (gsl_vector *result, double q, gsl_vector **chiA, gsl_vector **chiB, WaveformDataPiece *data, PrecessingNRSurData *__sur_data)
 
static PrecessingNRSurDataPrecessingNRSur_LoadData (Approximant approximant)
 
static PrecessingNRSurDataPrecessingNRSur_core (MultiModalWaveform **h, double q, double *chiA0, double *chiB0, double omega_ref, double init_orbphase, double *init_quat, LALValue *ModeArray, LALDict *LALparams, Approximant approximant)
 
static double PrecessingNRSur_StartFrequency (REAL8 m1, REAL8 m2, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, PrecessingNRSurData *__sur_data)
 Computes the starting frequency of the NRSur7dq2 or NRSur7dq4 waveform approximant when evaluated using fRef=0 (which uses the entire surrogate waveform starting 4500M for NRSur7dq2 and 4300M for NRSur7dq4, before the peak amplitude). More...
 
static bool PrecessingNRSur_switch_labels_if_needed (REAL8 *m1, REAL8 *m2, REAL8 *s1x, REAL8 *s1y, REAL8 *s1z, REAL8 *s2x, REAL8 *s2y, REAL8 *s2z)
 

Go to the source code of this file.

Data Structures

struct  FitData
 Data used in a single scalar fit. More...
 
struct  VectorFitData
 Data used in a single vector fit NOTE: basisFunctionOrders, coefs, componentIndices, and n_coefs are only used by NRSur7dq2. More...
 
struct  DynamicsNodeFitData
 Data for a single dynamics node. More...
 
struct  WaveformDataPiece
 Data for a single waveform data piece. More...
 
struct  WaveformFixedEllModeData
 All WaveformDataPieces needed to evaluate all modes with a fixed value of ell. More...
 
struct  PrecessingNRSurData
 All data needed by the full surrogate model. More...
 

Variables

static const double NRSUR7DQ2_Q_FIT_OFFSET = -2.9411764705882355
 
static const double NRSUR7DQ2_Q_FIT_SLOPE = 1.9607843137254901
 
static const double NRSUR7DQ2_Q_MAX_WARN = 2.01
 
static const double NRSUR7DQ2_CHI_MAX_WARN = 0.81
 
static const double NRSUR7DQ2_Q_MAX = 3.01
 
static const double NRSUR7DQ2_CHI_MAX = 1
 
static const double NRSUR7DQ2_START_TIME = -4499.99999999
 
static const double NRSUR7DQ4_Q_FIT_SLOPE = 1.4298059216576398
 
static const double NRSUR7DQ4_Q_FIT_OFFSET = -0.9857019407834238
 
static const double NRSUR7DQ4_Q_MAX_WARN = 4.01
 
static const double NRSUR7DQ4_CHI_MAX_WARN = 0.81
 
static const double NRSUR7DQ4_Q_MAX = 6.01
 
static const double NRSUR7DQ4_CHI_MAX = 1
 
static const double NRSUR7DQ4_START_TIME = -4299.99999999
 
static const int NRSUR_LMAX = 4
 
static const char NRSUR7DQ2_DATAFILE [] = "NRSur7dq2.h5"
 
static const char NRSUR7DQ4_DATAFILE [] = "NRSur7dq4.h5"
 

Function Documentation

◆ NRSur7dq2_Init_LALDATA()

static void NRSur7dq2_Init_LALDATA ( void  )
static

◆ NRSur7dq4_Init_LALDATA()

static void NRSur7dq4_Init_LALDATA ( void  )
static

◆ PrecessingNRSur_Init()

static int PrecessingNRSur_Init ( PrecessingNRSurData data,
LALH5File file,
UINT4  PrecessingNRSurVersion 
)
static

◆ PrecessingNRSur_LoadFitData()

static void PrecessingNRSur_LoadFitData ( FitData **  fit_data,
LALH5File sub,
const char name 
)
static

◆ NRSur7dq4_LoadVectorFitData()

static void NRSur7dq4_LoadVectorFitData ( VectorFitData **  vector_fit_data,
LALH5File sub,
const char name,
const size_t  size 
)
static

◆ PrecessingNRSur_LoadDynamicsNode()

static void PrecessingNRSur_LoadDynamicsNode ( DynamicsNodeFitData **  ds_node_data,
LALH5File sub,
int  i,
UINT4  PrecessingNRSurVersion 
)
static

◆ PrecessingNRSur_LoadCoorbitalEllModes()

static void PrecessingNRSur_LoadCoorbitalEllModes ( WaveformFixedEllModeData **  coorbital_mode_data,
LALH5File file,
int  i 
)
static

◆ PrecessingNRSur_LoadWaveformDataPiece()

static void PrecessingNRSur_LoadWaveformDataPiece ( LALH5File sub,
WaveformDataPiece **  data,
bool  invert_sign 
)
static

◆ NRSur7dq2_IsSetup()

static bool NRSur7dq2_IsSetup ( void  )
static

◆ NRSur7dq4_IsSetup()

static bool NRSur7dq4_IsSetup ( void  )
static

◆ NRSur7dq2_eval_vector_fit()

static void NRSur7dq2_eval_vector_fit ( double *  res,
VectorFitData data,
double *  x 
)
static

◆ NRSur7dq4_effective_spins()

static int NRSur7dq4_effective_spins ( REAL8 chiHat,
REAL8 chi_a,
const double  q,
const double  chi1z,
const double  chi2z 
)
static

◆ NRSur7dq4_eval_vector_fit()

static void NRSur7dq4_eval_vector_fit ( double *  res,
VectorFitData data,
double *  x 
)
static

◆ PrecessingNRSur_eval_vector_fit()

static void PrecessingNRSur_eval_vector_fit ( double *  res,
VectorFitData data,
double *  x,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_normalize_y()

static void PrecessingNRSur_normalize_y ( double  chiANorm,
double  chiBNorm,
double *  y 
)
static

◆ PrecessingNRSur_normalize_results()

static void PrecessingNRSur_normalize_results ( double  normA,
double  normB,
gsl_vector **  quat,
gsl_vector **  chiA,
gsl_vector **  chiB 
)
static

◆ PrecessingNRSur_rotate_spins()

static void PrecessingNRSur_rotate_spins ( gsl_vector **  chiA,
gsl_vector **  chiB,
gsl_vector *  phi 
)
static

◆ PrecessingNRSur_ds_fit_x()

static void PrecessingNRSur_ds_fit_x ( double *  x,
double  q,
double *  y 
)
static

◆ PrecessingNRSur_assemble_dydt()

static void PrecessingNRSur_assemble_dydt ( double *  dydt,
double *  y,
double *  Omega_coorb_xy,
double  omega,
double *  chiA_dot,
double *  chiB_dot 
)
static

◆ cubic_interp()

static double cubic_interp ( double  xout,
double *  x,
double *  y 
)
static

◆ spline_array_interp()

static gsl_vector* spline_array_interp ( gsl_vector *  xout,
gsl_vector *  x,
gsl_vector *  y 
)
static

◆ PrecessingNRSur_get_omega()

static double PrecessingNRSur_get_omega ( size_t  node_index,
double  q,
double *  y0,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_get_t_ref()

static REAL8 PrecessingNRSur_get_t_ref ( REAL8  omega_ref,
REAL8  q,
REAL8 chiA0,
REAL8 chiB0,
REAL8 init_quat,
REAL8  init_orbphase,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_get_time_deriv_from_index()

static void PrecessingNRSur_get_time_deriv_from_index ( double *  dydt,
int  i0,
double  q,
double *  y,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_get_time_deriv()

static void PrecessingNRSur_get_time_deriv ( double *  dtdy,
double  t,
double  q,
double *  y,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_initialize_at_dynamics_node()

static int PrecessingNRSur_initialize_at_dynamics_node ( double *  dynamics_data,
double  t_ref,
double  q,
double *  chiA0,
double *  chiB0,
double  init_orbphase,
double *  init_quat,
double  normA,
double  normB,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_initialize_RK4_with_half_nodes()

static void PrecessingNRSur_initialize_RK4_with_half_nodes ( double *  dynamics_data,
double *  time_steps,
double *  dydt0,
double *  dydt1,
double *  dydt2,
double *  dydt3,
double  normA,
double  normB,
double  q,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_initialize_RK4()

static int PrecessingNRSur_initialize_RK4 ( double *  dynamics_data,
double *  time_steps,
double *  dydt0,
double *  dydt1,
double *  dydt2,
double *  dydt3,
double  normA,
double  normB,
double  q,
int  i0,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_integrate_AB4()

static void PrecessingNRSur_integrate_AB4 ( double *  dynamics_data,
double *  time_steps,
double *  dydt0,
double *  dydt1,
double *  dydt2,
double *  dydt3,
double  normA,
double  normB,
double  q,
int  i_start,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_IntegrateDynamics()

static int PrecessingNRSur_IntegrateDynamics ( double *  dynamics_data,
double  q,
double *  chiA0,
double *  chiB0,
double  omega_ref,
double  init_orbphase,
double *  init_quat,
LALDict *  LALparams,
UINT4  PrecessingNRSurVersion 
)
static

◆ PrecessingNRSur_eval_data_piece()

static void PrecessingNRSur_eval_data_piece ( gsl_vector *  result,
double  q,
gsl_vector **  chiA,
gsl_vector **  chiB,
WaveformDataPiece data,
PrecessingNRSurData __sur_data 
)
static

◆ PrecessingNRSur_LoadData()

static PrecessingNRSurData* PrecessingNRSur_LoadData ( Approximant  approximant)
static

◆ PrecessingNRSur_core()

static PrecessingNRSurData* PrecessingNRSur_core ( MultiModalWaveform **  h,
double  q,
double *  chiA0,
double *  chiB0,
double  omega_ref,
double  init_orbphase,
double *  init_quat,
LALValue *  ModeArray,
LALDict *  LALparams,
Approximant  approximant 
)
static

◆ PrecessingNRSur_switch_labels_if_needed()

static bool PrecessingNRSur_switch_labels_if_needed ( REAL8 m1,
REAL8 m2,
REAL8 s1x,
REAL8 s1y,
REAL8 s1z,
REAL8 s2x,
REAL8 s2y,
REAL8 s2z 
)
static
Parameters
m1mass of companion 1 (kg)
m2mass of companion 2 (kg)
s1xinitial value of S1x
s1yinitial value of S1y
s1zinitial value of S1z
s2xinitial value of S2x
s2yinitial value of S2y
s2zinitial value of S2z

Variable Documentation

◆ NRSUR7DQ2_Q_FIT_OFFSET

const double NRSUR7DQ2_Q_FIT_OFFSET = -2.9411764705882355
static

Definition at line 32 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_Q_FIT_SLOPE

const double NRSUR7DQ2_Q_FIT_SLOPE = 1.9607843137254901
static

Definition at line 33 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_Q_MAX_WARN

const double NRSUR7DQ2_Q_MAX_WARN = 2.01
static

Definition at line 37 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_CHI_MAX_WARN

const double NRSUR7DQ2_CHI_MAX_WARN = 0.81
static

Definition at line 38 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_Q_MAX

const double NRSUR7DQ2_Q_MAX = 3.01
static

Definition at line 41 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_CHI_MAX

const double NRSUR7DQ2_CHI_MAX = 1
static

Definition at line 42 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_START_TIME

const double NRSUR7DQ2_START_TIME = -4499.99999999
static

Definition at line 44 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_Q_FIT_SLOPE

const double NRSUR7DQ4_Q_FIT_SLOPE = 1.4298059216576398
static

Definition at line 51 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_Q_FIT_OFFSET

const double NRSUR7DQ4_Q_FIT_OFFSET = -0.9857019407834238
static

Definition at line 53 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_Q_MAX_WARN

const double NRSUR7DQ4_Q_MAX_WARN = 4.01
static

Definition at line 57 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_CHI_MAX_WARN

const double NRSUR7DQ4_CHI_MAX_WARN = 0.81
static

Definition at line 58 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_Q_MAX

const double NRSUR7DQ4_Q_MAX = 6.01
static

Definition at line 61 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_CHI_MAX

const double NRSUR7DQ4_CHI_MAX = 1
static

Definition at line 62 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_START_TIME

const double NRSUR7DQ4_START_TIME = -4299.99999999
static

Definition at line 64 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR_LMAX

const int NRSUR_LMAX = 4
static

Definition at line 70 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ2_DATAFILE

const char NRSUR7DQ2_DATAFILE[] = "NRSur7dq2.h5"
static

Definition at line 74 of file LALSimIMRPrecessingNRSur.h.

◆ NRSUR7DQ4_DATAFILE

const char NRSUR7DQ4_DATAFILE[] = "NRSur7dq4.h5"
static

Definition at line 75 of file LALSimIMRPrecessingNRSur.h.