LALInspiralPhasing2.c

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 David Churches, B.S. Sathyaprakash
00003 *
00004 *  This program is free software; you can redistribute it and/or modify
00005 *  it under the terms of the GNU General Public License as published by
00006 *  the Free Software Foundation; either version 2 of the License, or
00007 *  (at your option) any later version.
00008 *
00009 *  This program is distributed in the hope that it will be useful,
00010 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 *  GNU General Public License for more details.
00013 *
00014 *  You should have received a copy of the GNU General Public License
00015 *  along with with program; see the file COPYING. If not, write to the
00016 *  Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00017 *  MA  02111-1307  USA
00018 */
00019 
00020 /*  <lalVerbatim file="LALInspiralPhasing2CV">
00021 Author: Sathyaprakash, B. S.
00022 $Id: LALInspiralPhasing2.c,v 1.4 2007/06/08 14:41:49 bema Exp $
00023 </lalVerbatim>  */
00024 
00025 /*  <lalLaTeX>
00026 
00027 \subsection{Module \texttt{LALInspiralPhasing2.c}}
00028 
00029 The code \texttt{LALInspiralPhasing2.c} calculates the phase of an inspiral 
00030 waveform as a function of the
00031 instantaneous frequency of the wave, up to $2^{nd}$ post--Newtonian order.
00032 
00033 \subsubsection*{Prototypes}
00034 \vspace{0.1in}
00035 \input{LALInspiralPhasing2CP}
00036 \index{\verb&LALInspiralPhasing2()&}
00037 \begin{itemize}
00038 \item {\tt phase:} Output, the phase of the wave at the current epoch.
00039 \item {\tt v:} Input, the PN expansion parameter at the current epoch.
00040 \item {\tt ak:} Input containing PN expansion coefficients.
00041 \end{itemize}
00042 
00043 \subsubsection*{Description}
00044 
00045 The phase of the inspiral wave corresponding to the {\tt Approximant} {\tt TaylorT2} 
00046 as in Equation~{eq:InspiralPhasing2}.
00047 
00048 \subsubsection*{Algorithm}
00049 None.
00050 
00051 \subsubsection*{Uses}
00052 None.
00053 
00054 \subsubsection*{Notes}
00055 None.
00056 
00057 \vfill{\footnotesize\input{LALInspiralPhasing2CV}}
00058 
00059 </lalLaTeX>  */
00060 
00061 #include <lal/LALStdlib.h>
00062 #include <lal/LALInspiral.h>
00063 
00064 NRCSID (LALINSPIRALPHASING2C, "$Id: LALInspiralPhasing2.c,v 1.4 2007/06/08 14:41:49 bema Exp $");
00065 
00066 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00067 
00068 void 
00069 LALInspiralPhasing2_0PN (
00070    LALStatus  *status,
00071    REAL8      *phase, 
00072    REAL8       v,
00073    expnCoeffs *ak
00074    )
00075 { /* </lalVerbatim>  */
00076 
00077   REAL8 v5;
00078 
00079   INITSTATUS (status, "LALInspiralPhasing2_0PN", LALINSPIRALPHASING2C);
00080   ATTATCHSTATUSPTR(status);
00081   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00082 
00083   v5 = pow(v,5.);
00084   *phase = ak->phiC
00085          + ak->pvaN / v5;
00086 
00087   DETATCHSTATUSPTR(status);
00088   RETURN(status);
00089 
00090 }
00091 
00092 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00093 
00094 void 
00095 LALInspiralPhasing2_2PN (
00096    LALStatus  *status,
00097    REAL8      *phase, 
00098    REAL8       v,
00099    expnCoeffs *ak
00100    )
00101 { /* </lalVerbatim>  */
00102 
00103   REAL8 v2,v5;
00104 
00105   INITSTATUS (status, "LALInspiralPhasing2_2PN", LALINSPIRALPHASING2C);
00106   ATTATCHSTATUSPTR(status);
00107   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00108 
00109   v2 = v*v;
00110   v5 = v2*v2*v;
00111   *phase = ak->phiC
00112          + ak->pvaN / v5 * ( 1. + 
00113          + ak->pva2 * v2);
00114 
00115   DETATCHSTATUSPTR(status);
00116   RETURN(status);
00117 
00118 }
00119 
00120 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00121 
00122 void 
00123 LALInspiralPhasing2_3PN (
00124    LALStatus  *status,
00125    REAL8      *phase, 
00126    REAL8       v,
00127    expnCoeffs *ak
00128    )
00129 { /* </lalVerbatim>  */
00130 
00131   REAL8 v2,v3,v5;
00132 
00133   INITSTATUS (status, "LALInspiralPhasing2_3PN", LALINSPIRALPHASING2C);
00134   ATTATCHSTATUSPTR(status);
00135   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00136 
00137   v2 = v*v;
00138   v3 = v2*v;
00139   v5 = v3*v2;
00140 
00141   *phase = ak->phiC
00142          + ak->pvaN / v5 * ( 1. + 
00143          + ak->pva2 * v2
00144          + ak->pva3 * v3);
00145 
00146   DETATCHSTATUSPTR(status);
00147   RETURN(status);
00148 
00149 }
00150 
00151 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00152 
00153 void 
00154 LALInspiralPhasing2_4PN (
00155    LALStatus  *status,
00156    REAL8      *phase, 
00157    REAL8       v,
00158    expnCoeffs *ak
00159    )
00160 { /* </lalVerbatim>  */
00161 
00162   REAL8 v2,v3,v4,v5;
00163 
00164   INITSTATUS (status, "LALInspiralPhasing2_4PN", LALINSPIRALPHASING2C);
00165   ATTATCHSTATUSPTR(status);
00166   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00167 
00168   v2 = v*v;
00169   v3 = v2*v;
00170   v4 = v3*v;
00171   v5 = v4*v;
00172   *phase = ak->phiC
00173          + ak->pvaN / v5 * ( 1. + 
00174          + ak->pva2 * v2
00175          + ak->pva3 * v3
00176          + ak->pva4 * v4);
00177   DETATCHSTATUSPTR(status);
00178   RETURN(status);
00179 }
00180 
00181 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00182 
00183 void 
00184 LALInspiralPhasing2_5PN (
00185    LALStatus  *status,
00186    REAL8      *phase, 
00187    REAL8       v,
00188    expnCoeffs *ak
00189    )
00190 { /* </lalVerbatim>  */
00191 
00192   REAL8 v2,v3,v4,v5;
00193 
00194   INITSTATUS (status, "LALInspiralPhasing2_5PN", LALINSPIRALPHASING2C);
00195   ATTATCHSTATUSPTR(status);
00196   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00197 
00198   v2 = v*v;
00199   v3 = v2*v;
00200   v4 = v3*v;
00201   v5 = v4*v;
00202   *phase = ak->phiC
00203          + ak->pvaN / v5 * ( 1. + 
00204          + ak->pva2 * v2
00205          + ak->pva3 * v3
00206          + ak->pva4 * v4
00207          + ak->pva5 * log(v/ak->vlso) * v5);
00208 
00209   DETATCHSTATUSPTR(status);
00210   RETURN(status);
00211 
00212 }
00213 
00214 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00215 
00216 void 
00217 LALInspiralPhasing2_6PN (
00218    LALStatus  *status,
00219    REAL8      *phase, 
00220    REAL8       v,
00221    expnCoeffs *ak
00222    )
00223 { /* </lalVerbatim>  */
00224 
00225   REAL8 v2,v3,v4,v5,v6;
00226 
00227   INITSTATUS (status, "LALInspiralPhasing2_6PN", LALINSPIRALPHASING2C);
00228   ATTATCHSTATUSPTR(status);
00229   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00230 
00231   v2 = v*v;
00232   v3 = v2*v;
00233   v4 = v3*v;
00234   v5 = v4*v;
00235   v6 = v5*v;
00236   *phase = ak->phiC
00237          + ak->pvaN / v5 * ( 1. + 
00238          + ak->pva2 * v2
00239          + ak->pva3 * v3
00240          + ak->pva4 * v4
00241          + ak->pva5 * log(v/ak->vlso) * v5
00242          + (ak->pva6 + ak->pvl6*log(4*v)) * v6);
00243 
00244   DETATCHSTATUSPTR(status);
00245   RETURN(status);
00246 
00247 }
00248 
00249 /*  <lalVerbatim file="LALInspiralPhasing2CP"> */
00250 
00251 void 
00252 LALInspiralPhasing2_7PN (
00253    LALStatus  *status,
00254    REAL8      *phase, 
00255    REAL8       v,
00256    expnCoeffs *ak
00257    )
00258 { /* </lalVerbatim>  */
00259 
00260   REAL8 v2,v3,v4,v5,v6,v7;
00261 
00262   INITSTATUS (status, "LALInspiralPhasing2_7PN", LALINSPIRALPHASING2C);
00263   ATTATCHSTATUSPTR(status);
00264   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00265 
00266   v2 = v*v;
00267   v3 = v2*v;
00268   v4 = v3*v;
00269   v5 = v4*v;
00270   v6 = v5*v;
00271   v7 = v6*v;
00272   *phase = ak->phiC
00273          + ak->pvaN / v5 * ( 1. + 
00274          + ak->pva2 * v2
00275          + ak->pva3 * v3
00276          + ak->pva4 * v4
00277          + ak->pva5 * log(v/ak->vlso) * v5
00278          + (ak->pva6 + ak->pvl6*log(4*v)) * v6
00279          + ak->pva7 * v7);
00280 
00281   DETATCHSTATUSPTR(status);
00282   RETURN(status);
00283 }

Generated on Tue Oct 7 02:40:01 2008 for LAL by  doxygen 1.5.2