21 static const double pi = 3.14159265358979312;
26 {
double fQNR = (1.0-0.63*pow(1.0-a,0.3))/(2.0*
pi);
27 double Q = 2.0/pow(1.0-a,0.45);
28 return exp(-
pi*fQNR*t/Q)*
Exp(2*
pi*fQNR*t);
33 int lentsig,
double a,
double tstart=-1)
35 double hmerge =
fabs(hsig[
int(tmerge/dt)]);
37 double phiIRS = 0.5*atan2(aux.
Im(), aux.
Re());
38 double omQNM = 1-0.63*pow(1-a, 0.3);
39 double Q = 2.0/pow(1.0-a, 0.45);
40 double b = 2.0*Q/omQNM;
46 double alpha = 72.3/(Q*
Q);
47 double fhat = c/2.*( pow(1 + 1./kappa, 1+kappa) - (1+1./kappa) );
49 double OmIRS = omQNM/2.0*(1.0-fhat);
51 double Amppeak = sqrt(
fabs(fdot)/(1+alpha*(fhat*fhat- pow(fhat,4))))/(2.0*OmIRS);
54 double t = tsig[
i]-tmerge;
55 fhat = c/2*pow(1+1./kappa,1+kappa)*( 1 - pow(1+exp(-2*t/b)/kappa, -kappa) );
56 OmIRS = omQNM/2*(1-fhat);
57 fdot = -c/b*pow(1+1./kappa,1+kappa)*pow(1+exp(-2*t/b)/kappa,-1.0-kappa)*exp(-2*t/b);
58 double Amp = hmerge*sqrt(
fabs(fdot)/(1+alpha*(fhat*fhat-pow(fhat, 4))))/(2*OmIRS*Amppeak);
60 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)