3 static const double pi = 3.14159265358979312;
8 {
double fQNR = (1.0-0.63*pow(1.0-a,0.3))/(2.0*
pi);
9 double Q = 2.0/pow(1.0-a,0.45);
10 return exp(-
pi*fQNR*t/Q)*
Exp(2*
pi*fQNR*t);
15 int lentsig,
double a,
double tstart=-1)
17 double hmerge =
fabs(hsig[
int(tmerge/dt)]);
19 double phiIRS = 0.5*atan2(aux.
Im(), aux.
Re());
20 double omQNM = 1-0.63*pow(1-a, 0.3);
21 double Q = 2.0/pow(1.0-a, 0.45);
22 double b = 2.0*Q/omQNM;
28 double alpha = 72.3/(Q*
Q);
29 double fhat = c/2.*( pow(1 + 1./kappa, 1+kappa) - (1+1./kappa) );
31 double OmIRS = omQNM/2.0*(1.0-fhat);
33 double Amppeak = sqrt(
fabs(fdot)/(1+alpha*(fhat*fhat- pow(fhat,4))))/(2.0*OmIRS);
36 double t = tsig[
i]-tmerge;
37 fhat = c/2*pow(1+1./kappa,1+kappa)*( 1 - pow(1+exp(-2*t/b)/kappa, -kappa) );
38 OmIRS = omQNM/2*(1-fhat);
39 fdot = -c/b*pow(1+1./kappa,1+kappa)*pow(1+exp(-2*t/b)/kappa,-1.0-kappa)*exp(-2*t/b);
40 double Amp = hmerge*sqrt(
fabs(fdot)/(1+alpha*(fhat*fhat-pow(fhat, 4))))/(2*OmIRS*Amppeak);
42 hsig[
i] = Amp*
Exp(2*phiIRS);
wavearray< double > t(hp.size())
Complex ringdown(double a, double t)
wavearray< double > a(hp.size())
Complex Exp(double phase)
double fabs(const Complex &x)
void irs_merger(double dt, double tmerge, double *tsig, Complex *hsig, int lentsig, double a, double tstart=-1)