LALInspiralFrequency3.c

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 David Churches, B.S. Sathyaprakash, Duncan Brown
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="LALInspiralFrequency3CV">
00021 
00022 Author: Sathyaprakash, B. S.
00023 $Id: LALInspiralFrequency3.c,v 1.6 2007/07/08 00:42:53 duncan Exp $
00024 </lalVerbatim>  */
00025 
00026 /*  <lalLaTeX>
00027 
00028 \subsection{Module \texttt{LALInspiralFrequency3.c}}
00029 
00030 The code \texttt{LALInspiralFrequency3.c} calculates the frequency the 
00031 waveform from an inspiralling binary system as a function of time up to 3.5 
00032 post-Nowtonian order.
00033 
00034 \subsubsection*{Prototypes}
00035 \vspace{0.1in}
00036 \input{LALInspiralFrequency3CP}
00037 \index{\verb&LALInspiralFrequency3()&}
00038 \begin{itemize}
00039 \item {\tt frequency:} Output containing the inspiral waveform.
00040 \item {\tt td:} Input containing PN expansion coefficients $F_k$ (cf. Table \ref{table:flux})
00041 of frequency as a function of time.  
00042 \item {\tt ak:} Input containing all PN expansion coefficients.
00043 \end{itemize}
00044 
00045 \subsubsection*{Description}
00046 
00047 This module computes the instantaneous frequency of an inspiral wave using
00048 \begin{equation}
00049 F(t) = F_N(\theta) \sum F_k \theta^k,
00050 \end{equation}
00051 where the expansion coefficients $F_k,$ Newtonian value $F_N$ and the
00052 time-variable $\theta$ are defined in Table \ref{table:flux}.
00053 
00054 \subsubsection*{Algorithm}
00055 
00056 
00057 \subsubsection*{Uses}
00058 None.
00059 
00060 \subsubsection*{Notes}
00061 The frequency evolution defined by post-Newtonian expansion is not monotonic.
00062 Indeed, the equations become highly inaccurate close to the last stable orbit (lso)
00063 and breakdown at or slightly after lso, and the frequency begins to decrease at later times.
00064 It turns out that the evolution is monotonic at least up to lso.
00065 
00066 \vfill{\footnotesize\input{LALInspiralFrequency3CV}}
00067 
00068 </lalLaTeX>  */
00069 
00070 #include <lal/LALStdlib.h>
00071 #include <lal/LALInspiral.h>
00072 
00073 NRCSID (LALINSPIRALFREQUENCY3C, "$Id: LALInspiralFrequency3.c,v 1.6 2007/07/08 00:42:53 duncan Exp $");
00074 
00075 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00076 
00077 void 
00078 LALInspiralFrequency3_0PN (
00079    LALStatus  *status,
00080    REAL8      *frequency,
00081    REAL8      td,
00082    expnCoeffs *ak
00083    ) 
00084 { /* </lalVerbatim>  */
00085 
00086   REAL8 theta,theta3;
00087 
00088   INITSTATUS (status, "LALInspiralFrequency3_0PN", LALINSPIRALFREQUENCY3C);
00089   ATTATCHSTATUSPTR(status);
00090 
00091   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00092 
00093   theta = pow(td,-0.125);
00094   theta3 = theta*theta*theta;
00095 
00096   *frequency = theta3*ak->ftaN;
00097 
00098   DETATCHSTATUSPTR(status);
00099   RETURN(status);
00100 }
00101 
00102 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00103 
00104 void 
00105 LALInspiralFrequency3_2PN (
00106    LALStatus *status,
00107    REAL8 *frequency,
00108    REAL8 td,
00109    expnCoeffs *ak
00110    ) 
00111 { /* </lalVerbatim>  */
00112 
00113   REAL8 theta,theta2,theta3;
00114 
00115   INITSTATUS (status, "LALInspiralFrequency3_2PN", LALINSPIRALFREQUENCY3C);
00116   ATTATCHSTATUSPTR(status);
00117 
00118   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00119 
00120   theta = pow(td,-0.125);
00121   theta2 = theta*theta;
00122   theta3 = theta2*theta;
00123 
00124   *frequency = theta3*ak->ftaN * (1.
00125              + ak->fta2*theta2);
00126                       
00127 
00128   DETATCHSTATUSPTR(status);
00129   RETURN(status);
00130 }
00131 
00132 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00133 
00134 void 
00135 LALInspiralFrequency3_3PN (
00136    LALStatus *status,
00137    REAL8 *frequency,
00138    REAL8 td,
00139    expnCoeffs *ak
00140    ) 
00141 { /* </lalVerbatim>  */
00142 
00143   REAL8 theta,theta2,theta3;
00144 
00145   INITSTATUS (status, "LALInspiralFrequency3_3PN", LALINSPIRALFREQUENCY3C);
00146   ATTATCHSTATUSPTR(status);
00147 
00148   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00149 
00150   theta = pow(td,-0.125);
00151   theta2 = theta*theta;
00152   theta3 = theta2*theta;
00153 
00154   *frequency = theta3*ak->ftaN * (1.
00155              + ak->fta2*theta2
00156              + ak->fta3*theta3);
00157   DETATCHSTATUSPTR(status);
00158   RETURN(status);
00159 }
00160 
00161 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00162 
00163 void 
00164 LALInspiralFrequency3_4PN (
00165    LALStatus *status,
00166    REAL8 *frequency,
00167    REAL8 td,
00168    expnCoeffs *ak
00169    ) 
00170 { /* </lalVerbatim>  */
00171 
00172   REAL8 theta,theta2,theta3,theta4;
00173 
00174   INITSTATUS (status, "LALInspiralFrequency3_4PN", LALINSPIRALFREQUENCY3C);
00175   ATTATCHSTATUSPTR(status);
00176 
00177   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00178 
00179   theta = pow(td,-0.125);
00180   theta2 = theta*theta;
00181   theta3 = theta2*theta;
00182   theta4 = theta3*theta;
00183 
00184   *frequency = theta3*ak->ftaN * (1.
00185              + ak->fta2*theta2
00186              + ak->fta3*theta3
00187              + ak->fta4*theta4);
00188   DETATCHSTATUSPTR(status);
00189   RETURN(status);
00190 }
00191 
00192 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00193 
00194 void 
00195 LALInspiralFrequency3_5PN (
00196    LALStatus *status,
00197    REAL8 *frequency,
00198    REAL8 td,
00199    expnCoeffs *ak
00200    ) 
00201 { /* </lalVerbatim>  */
00202 
00203   REAL8 theta,theta2,theta3,theta4,theta5;
00204 
00205   INITSTATUS (status, "LALInspiralFrequency3_5PN", LALINSPIRALFREQUENCY3C);
00206   ATTATCHSTATUSPTR(status);
00207 
00208   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00209 
00210   theta = pow(td,-0.125);
00211   theta2 = theta*theta;
00212   theta3 = theta2*theta;
00213   theta4 = theta3*theta;
00214   theta5 = theta4*theta;
00215 
00216   *frequency = theta3*ak->ftaN * (1.
00217              + ak->fta2*theta2
00218              + ak->fta3*theta3
00219              + ak->fta4*theta4
00220              + ak->fta5*theta5);
00221   DETATCHSTATUSPTR(status);
00222   RETURN(status);
00223 }
00224 
00225 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00226 
00227 void 
00228 LALInspiralFrequency3_6PN (
00229    LALStatus *status,
00230    REAL8 *frequency,
00231    REAL8 td,
00232    expnCoeffs *ak
00233    ) 
00234 { /* </lalVerbatim>  */
00235 
00236   REAL8 theta,theta2,theta3,theta4,theta5,theta6;
00237 
00238   INITSTATUS (status, "LALInspiralFrequency3_6PN", LALINSPIRALFREQUENCY3C);
00239   ATTATCHSTATUSPTR(status);
00240 
00241   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00242 
00243   theta = pow(td,-0.125);
00244   theta2 = theta*theta;
00245   theta3 = theta2*theta;
00246   theta4 = theta3*theta;
00247   theta5 = theta4*theta;
00248   theta6 = theta5*theta;
00249 
00250   *frequency = theta3*ak->ftaN * (1.
00251              + ak->fta2*theta2
00252              + ak->fta3*theta3
00253              + ak->fta4*theta4
00254              + ak->fta5*theta5
00255              + (ak->fta6 + ak->ftl6*log(td))*theta6);
00256   DETATCHSTATUSPTR(status);
00257   RETURN(status);
00258 }
00259 
00260 /*  <lalVerbatim file="LALInspiralFrequency3CP"> */
00261 
00262 void 
00263 LALInspiralFrequency3_7PN (
00264    LALStatus *status,
00265    REAL8 *frequency,
00266    REAL8 td,
00267    expnCoeffs *ak
00268    ) 
00269 { /* </lalVerbatim>  */
00270 
00271   REAL8 theta,theta2,theta3,theta4,theta5,theta6,theta7;
00272 
00273   INITSTATUS (status, "LALInspiralFrequency3_7PN", LALINSPIRALFREQUENCY3C);
00274   ATTATCHSTATUSPTR(status);
00275 
00276   ASSERT(ak, status, LALINSPIRALH_ENULL, LALINSPIRALH_MSGENULL);
00277 
00278   theta = pow(td,-0.125);
00279   theta2 = theta*theta;
00280   theta3 = theta2*theta;
00281   theta4 = theta3*theta;
00282   theta5 = theta4*theta;
00283   theta6 = theta5*theta;
00284   theta7 = theta6*theta;
00285 
00286   *frequency = theta3*ak->ftaN * (1.
00287              + ak->fta2*theta2
00288              + ak->fta3*theta3
00289              + ak->fta4*theta4
00290              + ak->fta5*theta5
00291              + (ak->fta6 + ak->ftl6*log(td))*theta6
00292              + ak->fta7*theta7);
00293   DETATCHSTATUSPTR(status);
00294   RETURN(status);
00295 }

Generated on Tue Oct 14 02:31:58 2008 for LAL by  doxygen 1.5.2