IMRPhenomP
Header file for IMRPhenomP functions
Currently, only Pv2 is supported.
Wrapped around IMRPhenomD
Typedefs
-
typedef enum tagIMRPhenomP_version_type IMRPhenomP_version_type
Enums
-
enum tagIMRPhenomP_version_type
Values:
-
enumerator IMRPhenomPv1_V
version 1: based on IMRPhenomC
-
enumerator IMRPhenomPv2_V
version 2: based on IMRPhenomD
-
enumerator IMRPhenomPv2NRTidal_V
version Pv2_NRTidal: based on IMRPhenomPv2; NRTides added before precession; can be used with both NRTidal versions defined below
-
enumerator IMRPhenomPv3_V
version 3: based on IMRPhenomD and the precession angles from Katerina Chatziioannou PhysRevD.95.104004 (arxiv:1703.03967)
-
enumerator IMRPhenomPv1_V
Variables
-
const double sqrt_6 = 2.44948974278317788
-
template<class T>
struct alpha_coeffs - #include <IMRPhenomP.h>
-
template<class T>
struct epsilon_coeffs - #include <IMRPhenomP.h>
-
template<class T>
class IMRPhenomPv2 : public IMRPhenomD<T> - #include <IMRPhenomP.h>
Subclassed by IMRPhenomPv2_NRT< T >, IMRPhenomPv3< T >, gIMRPhenomPv2< T >, ppE_IMRPhenomPv2_Inspiral< T >
Public Functions
-
virtual void calculate_euler_coeffs(alpha_coeffs<T> *acoeffs, epsilon_coeffs<T> *ecoeffs, source_parameters<T> *params)
Pre calculate euler angle coefficients.
Straight up stolen from LALsuite
-
virtual void PhenomPv2_JSF_from_params(gen_params_base<T> *params, T *JSF)
Calculate the unit vector in the direction of the total angular momentum.
-
virtual int construct_waveform(T *frequencies, int length, std::complex<T> *waveform_plus, std::complex<T> *waveform_cross, source_parameters<T> *params)
Constructs the waveform for IMRPhenomPv2 - uses IMRPhenomD, then twists up.
arguments: array of frequencies, length of that array, a complex array for the output waveform, and a source_parameters structure
- Parameters:
frequencies – T array of frequencies the waveform is to be evaluated at
length – integer length of the array of frequencies and the waveform
waveform_plus – complex T array for the plus polariaztion waveform to be output
waveform_cross – complex T array for the cross polarization waveform to be output
-
virtual int construct_phase(T *frequencies, int length, T *phase_plus, T *phase_cross, source_parameters<T> *params)
Constructs the phase for IMRPhenomPv2 - uses IMRPhenomD, then twists up.
arguments: array of frequencies, length of that array, a complex array for the output waveform, and a source_parameters structure
- Parameters:
frequencies – T array of frequencies the waveform is to be evaluated at
length – integer length of the array of frequencies and the waveform
phase_plus – complex T array for the plus polariaztion waveform to be output
phase_cross – complex T array for the cross polarization waveform to be output
-
virtual T calculate_time_shift(source_parameters<T> *params, useful_powers<T> *pows, T *pn_phase_coeffs, lambda_parameters<T> *lambda)
-
virtual void WignerD(T d2[5], T dm2[5], useful_powers<T> *pows, source_parameters<T> *params)
-
virtual void calculate_twistup(T alpha, std::complex<T> *hp_factor, std::complex<T> *hc_factor, T d2[5], T dm2[5], sph_harm<T> *sph_harm)
-
virtual void calculate_euler_angles(T *alpha, T *epsilon, useful_powers<T> *pows, alpha_coeffs<T> *acoeffs, epsilon_coeffs<T> *ecoeffs)
-
virtual T PhenomPv2_inplane_spin(gen_params_base<T> *params)
-
virtual void PhenomPv2_Param_Transform(source_parameters<T> *params)
/Brief Parameter transformtion to precalculate needed parameters for PhenomP from source parameters
Pretty much stolen verbatim from lalsuite
-
virtual void PhenomPv2_Param_Transform_J(source_parameters<T> *params)
/Brief Parameter transformtion to precalculate needed parameters for PhenomP from source parameters — assumed inclination of total angular momentum J is given, not orbital angular momentum (in source frame (Lhat == zhat)
Pretty much stolen verbatim from lalsuite
-
virtual void PhenomPv2_Param_Transform_reduced(source_parameters<T> *params)
/Brief Parameter transformation to pre-calculate needed parameters for PhenomP from source parameters
Pretty much stolen verbatim from lalsuite
-
virtual T L2PN(T eta, useful_powers<T> *pow)
-
virtual T FinalSpinIMRPhenomD_all_in_plane_spin_on_larger_BH(T m1, T m2, T chi1_l, T chi2_l, T chip)
Wrapper for final-spin formula based on:
- IMRPhenomD’s FinalSpin0815() for aligned spins.
We use their convention m1>m2
and put all in-plane spin on the larger BH.
In the aligned limit return the FinalSpin0815 value.
- Parameters:
m1 – Mass of companion 1 (solar masses)
m2 – Mass of companion 2 (solar masses)
chi1_l – Aligned spin of BH 1
chi2_l – Aligned spin of BH 2
chip – Dimensionless spin in the orbital plane
-
virtual T final_spin(source_parameters<T> *params)
-
virtual void calculate_euler_coeffs(alpha_coeffs<T> *acoeffs, epsilon_coeffs<T> *ecoeffs, source_parameters<T> *params)