00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100 #include <math.h>
00101 #include <lal/LALStdlib.h>
00102 #include <lal/LALInspiral.h>
00103
00104 NRCSID (LALINSPIRALCHOOSEMODELC, "$Id: LALInspiralChooseModel.c,v 1.30 2008/06/03 12:00:58 thomas Exp $");
00105
00106
00107 static REAL8 dEt0(REAL8 v, expnCoeffs *ak)
00108 {
00109 REAL8 dEnergy;
00110 dEnergy = ak->dETaN * v;
00111 return (dEnergy);
00112 }
00113
00114
00115 static REAL8 dEt2(REAL8 v, expnCoeffs *ak)
00116 {
00117 REAL8 dEnergy, x;
00118 x = v*v;
00119 dEnergy = ak->dETaN * v * (1. + ak->dETa1*x);
00120 return (dEnergy);
00121 }
00122
00123
00124 static REAL8 dEt4(REAL8 v, expnCoeffs *ak)
00125 {
00126 REAL8 dEnergy, x;
00127 x = v*v;
00128 dEnergy = ak->dETaN * v * (1. + ak->dETa1*x + ak->dETa2*x*x);
00129 return (dEnergy);
00130 }
00131
00132
00133
00134 static REAL8 dEt6(REAL8 v, expnCoeffs *ak)
00135 {
00136 REAL8 dEnergy, x;
00137 x = v*v;
00138 dEnergy = ak->dETaN * v * (1. + ak->dETa1*x + ak->dETa2*x*x + ak->dETa3*x*x*x);
00139 return (dEnergy);
00140 }
00141
00142
00143
00144
00145
00146
00147 static REAL8 Ft0(REAL8 v, expnCoeffs *ak)
00148 {
00149 REAL8 flux,v2,v4,v8,v10;
00150 v2 = v*v;
00151 v4 = v2*v2;
00152 v8 = v4*v4;
00153 v10 = v8*v2;
00154 flux = ak->FTaN * v10;
00155 return (flux);
00156 }
00157
00158
00159 static REAL8 Ft2(REAL8 v, expnCoeffs *ak)
00160 {
00161 REAL8 flux,v2,v4,v8,v10;
00162 v2 = v*v;
00163 v4 = v2*v2;
00164 v8 = v4*v4;
00165 v10 = v8*v2;
00166 flux = ak->FTaN * v10 * (1. + ak->FTa2*v2);
00167 return (flux);
00168 }
00169
00170
00171 static REAL8 Ft3(REAL8 v, expnCoeffs *ak)
00172 {
00173 REAL8 flux,v2,v4,v8,v10;
00174 v2 = v*v;
00175 v4 = v2*v2;
00176 v8 = v4*v4;
00177 v10 = v8*v2;
00178 flux = ak->FTaN * v10 * (1. + ak->FTa2*v2 + ak->FTa3*v2*v);
00179 return (flux);
00180 }
00181
00182
00183 static REAL8 Ft4(REAL8 v, expnCoeffs *ak)
00184 {
00185 REAL8 flux,v2,v4,v8,v10;
00186 v2 = v*v;
00187 v4 = v2*v2;
00188 v8 = v4*v4;
00189 v10 = v8*v2;
00190 flux = ak->FTaN * v10 * (1. + ak->FTa2*v2 + ak->FTa3*v2*v + ak->FTa4*v4);
00191 return (flux);
00192 }
00193
00194
00195 static REAL8 Ft5(REAL8 v, expnCoeffs *ak)
00196 {
00197 REAL8 flux,v2,v4,v8,v10;
00198 v2 = v*v;
00199 v4 = v2*v2;
00200 v8 = v4*v4;
00201 v10 = v8*v2;
00202 flux = ak->FTaN * v10 * (1.+ ak->FTa2*v2 + ak->FTa3*v2*v + ak->FTa4*v4
00203 + ak->FTa5*v4*v);
00204 return (flux);
00205 }
00206
00207
00208 static REAL8 Ft6(REAL8 v, expnCoeffs *ak)
00209 {
00210 REAL8 flux,v2,v4,v6,v8,v10;
00211 v2 = v*v;
00212 v4 = v2*v2;
00213 v6 = v4*v2;
00214 v8 = v4*v4;
00215 v10 = v8*v2;
00216 flux = ak->FTaN * v10 * (1.+ ak->FTa2*v2 + ak->FTa3*v2*v + ak->FTa4*v4
00217 + ak->FTa5*v4*v + (ak->FTa6 + ak->FTl6*log(v))*v6);
00218 return (flux);
00219 }
00220
00221
00222 static REAL8 Ft7(REAL8 v, expnCoeffs *ak)
00223 {
00224 REAL8 flux,v2,v4,v6,v8,v10;
00225 v2 = v*v;
00226 v4 = v2*v2;
00227 v6 = v4*v2;
00228 v8 = v4*v4;
00229 v10 = v8*v2;
00230 flux = ak->FTaN * v10 * (1.+ ak->FTa2*v2 + ak->FTa3*v2*v + ak->FTa4*v4
00231 + ak->FTa5*v4*v + (ak->FTa6 + ak->FTl6*log(v))*v6 + ak->FTa7*v6*v);
00232 return (flux);
00233 }
00234
00235
00236 #if 0
00237
00238 static REAL8 ep0(REAL8 v, expnCoeffs *ak)
00239 {
00240 REAL8 x, energy;
00241 ak = NULL;
00242 x = v*v;
00243 energy = -x;
00244 return (energy);
00245 }
00246 #endif
00247
00248
00249 static REAL8 ep2(REAL8 v, expnCoeffs *ak)
00250 {
00251 REAL8 x, energy;
00252 x = v*v;
00253 energy = -x / (1. + ak->ePa1 * x);
00254 return (energy);
00255 }
00256
00257
00258 static REAL8 ep4(REAL8 v, expnCoeffs *ak)
00259 {
00260 REAL8 x, energy;
00261 x = v*v;
00262 energy = -x / (1. + ak->ePa1*x /(1. + ak->ePa2*x));
00263 return (energy);
00264 }
00265
00266
00267 static REAL8 ep6(REAL8 v, expnCoeffs *ak)
00268 {
00269 REAL8 x, energy;
00270 x = v*v;
00271 energy = -x / (1. + ak->ePa1*x /(1. + ak->ePa2*x /(1. + ak->ePa3*x)));
00272 return (energy);
00273 }
00274
00275 #if 0
00276
00277 static REAL8 dEp0(REAL8 v, expnCoeffs *ak)
00278 {
00279 REAL8 energy, denergy, Energy, dEnergy, y;
00280 energy = ep0(v, ak);
00281 y = sqrt(1.+energy);
00282 Energy = sqrt(1. + 2.* ak->eta * (y - 1.)) - 1.;
00283 denergy = -1;
00284 dEnergy = v * ak->eta * denergy /((1.+Energy) * y);
00285 return(dEnergy);
00286 }
00287 #endif
00288
00289
00290 static REAL8 dEp2(REAL8 v, expnCoeffs *ak)
00291 {
00292 REAL8 energy, denergy, Energy, dEnergy, x, y;
00293 x = v*v;
00294 energy = ep2(v, ak);
00295 y = sqrt(1.+energy);
00296 Energy = sqrt(1. + 2.* ak->eta * (y - 1.)) - 1.;
00297 denergy = -1. / ((1. + ak->ePa1*x)*(1. + ak->ePa1*x));
00298 dEnergy = v * ak->eta * denergy /((1.+Energy) * y);
00299 return(dEnergy);
00300 }
00301
00302
00303 static REAL8 dEp4(REAL8 v, expnCoeffs *ak)
00304 {
00305 REAL8 energy, denergy, Energy, dEnergy, x, y;
00306 x = v*v;
00307 energy = ep4(v, ak);
00308 y = sqrt(1.+energy);
00309 Energy = sqrt(1. + 2.* ak->eta * (y - 1.)) - 1.;
00310 denergy = (1. + 2.*ak->ePa2*x + ((ak->ePa1 + ak->ePa2) * ak->ePa2 * x*x))/pow(1. + (ak->ePa1 + ak->ePa2) * x ,2.);
00311 dEnergy = - v * ak->eta * denergy /((1.+Energy) * y);
00312 return(dEnergy);
00313 }
00314
00315
00316
00317 static REAL8 dEp6(REAL8 v, expnCoeffs *ak)
00318 {
00319 REAL8 energy, denergy, Energy, dEnergy, x, y;
00320 x = v*v;
00321 energy = ep6(v, ak);
00322 y = sqrt(1.+energy);
00323 Energy = sqrt(1. + 2.* ak->eta * (y - 1.)) - 1.;
00324 denergy = (1. + 2.*(ak->ePa2+ak->ePa3)*x + (ak->ePa1*ak->ePa2
00325 + ak->ePa2*ak->ePa2 + 2.* ak->ePa2*ak->ePa3
00326 + ak->ePa3*ak->ePa3) * x*x)
00327 /pow(1. + (ak->ePa1 + ak->ePa2 + ak->ePa3) * x
00328 + ak->ePa1*ak->ePa3*x*x,2.);
00329 dEnergy = - v * ak->eta * denergy /((1.+Energy) * y);
00330 return(dEnergy);
00331 }
00332
00333
00334
00335 #if 0
00336
00337 static REAL8 Fp0(REAL8 v, expnCoeffs *ak)
00338 {
00339 REAL8 flux,v2,v4,v8,v10;
00340 v2 = v*v;
00341 v4 = v2*v2;
00342 v8 = v4*v4;
00343 v10 = v8*v2;
00344 flux = ak->fPaN * v10;
00345 return (flux);
00346 }
00347 #endif
00348
00349 #if 0
00350
00351 static REAL8 Fp1(REAL8 v, expnCoeffs *ak)
00352 {
00353 REAL8 flux,v2,v4,v8,v10;
00354 v2 = v*v;
00355 v4 = v2*v2;
00356 v8 = v4*v4;
00357 v10 = v8*v2;
00358 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v) * (1.-v/ak->vpoleP4));
00359 return (flux);
00360 }
00361 #endif
00362
00363 #if 0
00364
00365 static REAL8 Fp2(REAL8 v, expnCoeffs *ak)
00366 {
00367 REAL8 flux,v2,v4,v8,v10;
00368 v2 = v*v;
00369 v4 = v2*v2;
00370 v8 = v4*v4;
00371 v10 = v8*v2;
00372 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v / (1.+ak->fPa2*v)) * (1.-v/ak->vpoleP4));
00373 return (flux);
00374 }
00375 #endif
00376
00377
00378 static REAL8 Fp3(REAL8 v, expnCoeffs *ak)
00379 {
00380 REAL8 flux,v2,v4,v8,v10;
00381 v2 = v*v;
00382 v4 = v2*v2;
00383 v8 = v4*v4;
00384 v10 = v8*v2;
00385 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v)))
00386 * (1.-v/ak->vpoleP4));
00387 return (flux);
00388 }
00389
00390
00391 static REAL8 Fp4(REAL8 v, expnCoeffs *ak)
00392 {
00393 REAL8 flux,v2,v4,v8,v10;
00394 v2 = v*v;
00395 v4 = v2*v2;
00396 v8 = v4*v4;
00397 v10 = v8*v2;
00398 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v
00399 / (1.+ak->fPa4*v)))) * (1.-v/ak->vpoleP4));
00400 return (flux);
00401 }
00402
00403
00404 static REAL8 Fp5(REAL8 v, expnCoeffs *ak)
00405 {
00406 REAL8 flux,v2,v4,v8,v10;
00407 v2 = v*v;
00408 v4 = v2*v2;
00409 v8 = v4*v4;
00410 v10 = v8*v2;
00411 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v
00412 / (1.+ak->fPa4*v / (1.+ak->fPa5*v))))) * (1.-v/ak->vpoleP4));
00413 return (flux);
00414 }
00415
00416
00417 static REAL8 Fp6(REAL8 v, expnCoeffs *ak)
00418 {
00419 REAL8 flux,v2,v4,v6,v8,v10;
00420 v2 = v*v;
00421 v4 = v2*v2;
00422 v6 = v4*v2;
00423 v8 = v4*v4;
00424 v10 = v8*v2;
00425 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v
00426 / (1.+ak->fPa4*v / (1.+ak->fPa5*v / (1.+ak->fPa6*v))))))
00427 * (1.-v/ak->vpoleP6));
00428
00429 flux *= (1.+ log(v/ak->vlsoP4) * ak->FTl6*v6) ;
00430 return (flux);
00431 }
00432
00433
00434 static REAL8 Fp7(REAL8 v, expnCoeffs *ak)
00435 {
00436 REAL8 flux,v2,v4,v6,v8,v10;
00437 v2 = v*v;
00438 v4 = v2*v2;
00439 v6 = v4*v2;
00440 v8 = v4*v4;
00441 v10 = v8*v2;
00442 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v
00443 / (1.+ak->fPa4*v / (1.+ak->fPa5*v / (1.+ak->fPa6*v / (1.+ak->fPa7*v)))))))
00444 * (1.-v/ak->vpoleP6));
00445 flux *= (1.+ log(v/ak->vlsoP4) * ak->FTl6*v6) ;
00446 return (flux);
00447 }
00448
00449
00450 static REAL8 Fp8(REAL8 v, expnCoeffs *ak)
00451 {
00452 REAL8 flux,v2,v4,v6,v8,v10, l6, l8;
00453 v2 = v*v;
00454 v4 = v2*v2;
00455 v6 = v4*v2;
00456 v8 = v4*v4;
00457 v10 = v8*v2;
00458 l6 = ak->FTl6;
00459 l8 = ak->FTl8 - ak->FTa2*ak->FTl6;
00460 flux = ak->fPaN * v10/ ((1.+ak->fPa1*v/(1.+ak->fPa2*v/ (1.+ak->fPa3*v
00461 / (1.+ak->fPa4*v / (1.+ak->fPa5*v / (1.+ak->fPa6*v / (1.+ak->fPa7*v
00462 / (1.+ak->fPa8*v))))))))
00463 * (1.-v/ak->vpoleP6));
00464 flux *= (1.+ log(v/ak->vlsoP4) * (l6*v6 + l8*v8) ) ;
00465 return (flux);
00466 }
00467
00468
00469 void
00470 LALInspiralChooseModel(
00471 LALStatus *status,
00472 expnFunc *f,
00473 expnCoeffs *ak,
00474 InspiralTemplate *params
00475 )
00476 {
00477
00478 REAL8 vn, vlso;
00479 TofVIn in1;
00480 REAL8 tofv;
00481 void *in2;
00482
00483 INITSTATUS (status, "LALInspiralChooseModel", LALINSPIRALCHOOSEMODELC);
00484 ATTATCHSTATUSPTR(status);
00485
00486 ASSERT (f, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00487 ASSERT (ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00488 ASSERT (params, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00489 ASSERT (params->order != oneHalfPN,status,LALINSPIRALH_ENULL,LALINSPIRALH_MSGENULL);
00490 ASSERT((INT4)params->order >= 0, status, LALINSPIRALH_ESIZE, LALINSPIRALH_MSGESIZE);
00491 ASSERT((INT4)params->order <= 8, status, LALINSPIRALH_ESIZE, LALINSPIRALH_MSGESIZE);
00492
00493 vlso = 0;
00494
00495 switch (params->order)
00496 {
00497 case newtonian:
00498 switch (params->approximant)
00499 {
00500 case AmpCorPPN:
00501 case Eccentricity:
00502 case TaylorT1:
00503 case TaylorT2:
00504 case TaylorT3:
00505 case TaylorF1:
00506 case TaylorF2:
00507 case SpinTaylorT3:
00508 case SpinTaylor:
00509 ak->vn = ak->vlso = vlso = ak->vlsoT0;
00510 f->dEnergy = dEt0;
00511 f->flux = Ft0;
00512 f->phasing2 = &LALInspiralPhasing2_0PN;
00513 f->timing2 = &LALInspiralTiming2_0PN;
00514 f->phasing3 = &LALInspiralPhasing3_0PN;
00515 f->frequency3 = &LALInspiralFrequency3_0PN;
00516 break;
00517 case PadeT1:
00518 case PadeF1:
00519 case EOB:
00520 case EOBNR:
00521 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00522 break;
00523 default:
00524 break;
00525 }
00526 break;
00527 case oneHalfPN:
00528 ABORT(status, LALINSPIRALH_ECHOICE, "OneHalfPN is not valid");
00529 break;
00530 case onePN:
00531 switch (params->approximant)
00532 {
00533 case Eccentricity:
00534 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00535 break;
00536 case AmpCorPPN:
00537 case TaylorT1:
00538 case TaylorT2:
00539 case TaylorT3:
00540 case TaylorF1:
00541 case TaylorF2:
00542 case SpinTaylorT3:
00543 case SpinTaylor:
00544
00545 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00546 f->dEnergy = dEt2;
00547 f->flux = Ft2;
00548 f->phasing2 = &LALInspiralPhasing2_2PN;
00549 f->timing2 = &LALInspiralTiming2_2PN;
00550 f->phasing3 = &LALInspiralPhasing3_2PN;
00551 f->frequency3 = &LALInspiralFrequency3_2PN;
00552 break;
00553 case PadeT1:
00554 case PadeF1:
00555 case EOB:
00556 case EOBNR:
00557 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00558 break;
00559 default:
00560 break;
00561 }
00562 break;
00563 case onePointFivePN:
00564 switch (params->approximant)
00565 {
00566 case Eccentricity:
00567 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00568 break;
00569 case AmpCorPPN:
00570 case TaylorT1:
00571 case TaylorT2:
00572 case TaylorT3:
00573 case TaylorF1:
00574 case TaylorF2:
00575 case SpinTaylorT3:
00576 case SpinTaylor:
00577 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00578 f->dEnergy = dEt2;
00579 f->flux = Ft3;
00580 f->phasing3 = &LALInspiralPhasing3_3PN;
00581 f->frequency3 = &LALInspiralFrequency3_3PN;
00582 f->phasing2 = &LALInspiralPhasing2_3PN;
00583 f->timing2 = &LALInspiralTiming2_3PN;
00584 break;
00585 case PadeT1:
00586 ak->vn = ak->vlso = vlso = ak->vlsoP0;
00587 f->dEnergy = dEp2;
00588 f->flux = Fp3;
00589 break;
00590 case PadeF1:
00591 case EOB:
00592 case EOBNR:
00593 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00594 break;
00595 default:
00596 break;
00597 }
00598 break;
00599 case twoPN:
00600 switch (params->approximant)
00601 {
00602 case Eccentricity:
00603 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00604 break;
00605 case AmpCorPPN:
00606 case TaylorT1:
00607 case TaylorT2:
00608 case TaylorT3:
00609 case TaylorF1:
00610 case TaylorF2:
00611 case SpinTaylorT3:
00612 case SpinTaylor:
00613
00614
00615
00616
00617 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00618 f->dEnergy = dEt4;
00619 f->flux = Ft4;
00620 f->phasing2 = &LALInspiralPhasing2_4PN;
00621 f->timing2 = &LALInspiralTiming2_4PN;
00622 f->phasing3 = &LALInspiralPhasing3_4PN;
00623 f->frequency3 = &LALInspiralFrequency3_4PN;
00624 break;
00625 case PadeT1:
00626 case EOB:
00627 case EOBNR:
00628 ak->vn = ak->vlso = vlso = ak->vlsoP4;
00629 f->dEnergy = dEp4;
00630 f->flux = Fp4;
00631 break;
00632 case PadeF1:
00633 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00634 break;
00635 default:
00636 break;
00637 }
00638 break;
00639 case twoPointFivePN:
00640 switch (params->approximant)
00641 {
00642 case Eccentricity:
00643 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00644 break;
00645 case AmpCorPPN:
00646 case TaylorT1:
00647 case TaylorT2:
00648 case TaylorT3:
00649 case TaylorF1:
00650 case TaylorF2:
00651 case SpinTaylorT3:
00652 case SpinTaylor:
00653
00654
00655
00656
00657 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00658 f->dEnergy = dEt4;
00659 f->flux = Ft5;
00660 f->phasing2 = &LALInspiralPhasing2_5PN;
00661 f->timing2 = &LALInspiralTiming2_5PN;
00662 f->phasing3 = &LALInspiralPhasing3_5PN;
00663 f->frequency3 = &LALInspiralFrequency3_5PN;
00664 break;
00665 case PadeT1:
00666 case EOB:
00667 case EOBNR:
00668 ak->vn = ak->vlso = vlso = ak->vlsoP4;
00669 f->dEnergy = dEp4;
00670 f->flux = Fp5;
00671 break;
00672 case PadeF1:
00673 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00674 break;
00675 default:
00676
00677 break;
00678 }
00679 break;
00680 case threePN:
00681 switch (params->approximant)
00682 {
00683 case Eccentricity:
00684 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00685 break;
00686 case AmpCorPPN:
00687 case TaylorT1:
00688 case TaylorT2:
00689 case TaylorT3:
00690 case TaylorF1:
00691 case TaylorF2:
00692 case SpinTaylorT3:
00693 case SpinTaylor:
00694
00695
00696
00697
00698 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00699 f->dEnergy = dEt6;
00700 f->flux = Ft6;
00701 f->phasing2 = &LALInspiralPhasing2_6PN;
00702 f->timing2 = &LALInspiralTiming2_6PN;
00703 f->phasing3 = &LALInspiralPhasing3_6PN;
00704 f->frequency3 = &LALInspiralFrequency3_6PN;
00705 break;
00706 case PadeT1:
00707 case EOB:
00708 case EOBNR:
00709 ak->vn = ak->vlso = vlso = ak->vlsoP6;
00710 f->dEnergy = dEp6;
00711 f->flux = Fp6;
00712 break;
00713 case PadeF1:
00714 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00715 break;
00716 default:
00717
00718 break;
00719 }
00720 break;
00721 case threePointFivePN:
00722 switch (params->approximant)
00723 {
00724 case Eccentricity:
00725 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00726 break;
00727 case AmpCorPPN:
00728 case TaylorT1:
00729 case TaylorT2:
00730 case TaylorT3:
00731 case TaylorF1:
00732 case TaylorF2:
00733 case SpinTaylorT3:
00734 case SpinTaylor:
00735 ak->vn = ak->vlso = vlso = ak->vlsoT2;
00736 f->dEnergy = dEt6;
00737 f->flux = Ft7;
00738 f->phasing2 = &LALInspiralPhasing2_7PN;
00739 f->timing2 = &LALInspiralTiming2_7PN;
00740 f->phasing3 = &LALInspiralPhasing3_7PN;
00741 f->frequency3 = &LALInspiralFrequency3_7PN;
00742 break;
00743 case PadeT1:
00744 case EOB:
00745 case EOBNR:
00746 ak->vn = ak->vlso = vlso = ak->vlsoP6;
00747 f->dEnergy = dEp6;
00748 f->flux = Fp7;
00749 break;
00750 case PadeF1:
00751 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00752 break;
00753 default:
00754 break;
00755 }
00756 break;
00757 case pseudoFourPN:
00758 switch (params->approximant)
00759 {
00760 case Eccentricity:
00761 ABORT(status, LALINSPIRALH_EORDERMISSING, LALINSPIRALH_MSGEORDERMISSING);
00762 break;
00763 case EOB:
00764 case EOBNR:
00765 ak->vn = ak->vlso = vlso = ak->vlsoP6;
00766 f->dEnergy = dEp6;
00767 f->flux = Fp8;
00768 break;
00769 case AmpCorPPN:
00770 case TaylorT1:
00771 case TaylorT2:
00772 case TaylorT3:
00773 case TaylorF1:
00774 case TaylorF2:
00775 case SpinTaylorT3:
00776 case SpinTaylor:
00777 case PadeT1:
00778 case PadeF1:
00779 ABORT(status, LALINSPIRALH_ECHOICE, LALINSPIRALH_MSGECHOICE);
00780 break;
00781 default:
00782 break;
00783 }
00784 default:
00785 break;
00786 }
00787
00788
00789 switch (params->approximant){
00790 case AmpCorPPN:
00791 case TaylorT1:
00792 case TaylorT2:
00793 case TaylorT3:
00794 case TaylorF1:
00795 case EOB:
00796 case EOBNR:
00797 case PadeT1:
00798 case PadeF1:
00799 case TaylorF2:
00800 case SpinTaylorT3:
00801 case SpinTaylor:
00802 ak->flso = pow(ak->vlso,3.)/(LAL_PI * ak->totalmass);
00803
00804 if (ak->fn) {
00805 vn = pow(LAL_PI * ak->totalmass * ak->fn, oneby3);
00806 ak->vn = (vn < vlso) ? vn : vlso;
00807 }
00808
00809 in1.t=0.0;
00810 in1.v0=ak->v0;
00811 in1.t0=ak->t0;
00812 in1.vlso=ak->vlso;
00813 in1.totalmass = ak->totalmass;
00814 in1.dEnergy = f->dEnergy;
00815 in1.flux = f->flux;
00816 in1.coeffs = ak;
00817
00818 in2 = (void *) &in1;
00819
00820 LALInspiralTofV(status->statusPtr, &tofv, ak->vn, in2);
00821 CHECKSTATUSPTR(status);
00822
00823 ak->tn = -tofv - ak->samplinginterval;
00824 params->fCutoff = ak->fn = pow(ak->vn, 3.)/(LAL_PI * ak->totalmass);
00825
00826
00827
00828
00829
00830
00831
00832
00833
00834
00835 break;
00836 case BCV:
00837 case BCVSpin:
00838 ak->tn = 100.;
00839 break;
00840 case Eccentricity:
00841
00842
00843 ak->tn = 5.*ak->totalmass/256./ak->eta/pow(LAL_PI*ak->totalmass*params->fLower/3.*2.,8./3.);
00844 ak->flso = pow(ak->vlso,3.)/(LAL_PI * ak->totalmass);
00845 break;
00846 default:
00847 ABORT( status, 9999, "Unknown case in switch." );
00848 }
00849
00850 DETATCHSTATUSPTR(status);
00851 RETURN