AstroOmega.c

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 Robert Adam Mercer, Tania Regimbau
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 
00021 /* <lalVerbatim file="AstroOmegaCV">
00022 Author: Regimbau T.
00023 $Id: AstroOmega.c,v 1.6 2007/06/08 14:41:54 bema Exp $  
00024 </lalVerbatim> */
00025 
00026 /*<lalLaTeX>
00027 
00028 \subsection*{Module \texttt{AstroOmega.c}}
00029 
00030 [compute the energy density spectrum of stochastic backgrounds produced
00031 by cosmological population of astrophysical sources]
00032 
00033 \subsubsection*{Prototypes}
00034 %\input{AstroOmegaCP}
00035 \index{\texttt{LALAstroOmega()}}
00036 \subsubsection*{Description}
00037 The function of this module computes the energy density parameter $\Omega_{gw}(\nu_{o})$ for a given source and a given cosmological model.
00038 The spectral properties of the stochastic background are characterized by the dimensionless parameter
00039 \begin{equation}
00040 \Omega _{gw}=\frac{1}{\rho _{c}}\frac{d\rho _{gw}}{d\log \nu _{o}}
00041 \end{equation}
00042 where $\rho _{gw}$ is the gravitational energy density, $\nu _{o}$ the frequency in the
00043 observer frame and
00044 \begin{equation}
00045 \rho _{c}=\frac{3H_{o}^{2}}{8\pi G}
00046 \end{equation}
00047 the critical energy density to close the Universe today.
00048 
00049 For a given cosmological model, a stochastic background of
00050 astrophysical origin is fully determined by the source formation rate as a function of redshift,
00051 $dR(z)$ and the gravitational spectral density of a single source, ${dE_{gw}}\over{d\nu}$.
00052 Following Ferrari et al. (1999):
00053 \begin{equation}
00054 \Omega _{gw}(\nu _{o})=\frac{1}{c^{3} \rho _{c}}{\nu _{o}}F_{\nu _{o}}
00055 \end{equation}
00056 where
00057 \begin{equation}
00058 F_{\nu _{o}}=\int_{0}^{z_{\max }}f_{\nu _{o}}dR(z)
00059 \end{equation}
00060 is the gravitational wave flux at the
00061 frequency $\nu _{o}$ integrated over all the sources.
00062 The gravitational flux of a single source located between z, z+dz is:
00063 \begin{equation}
00064 f_{\nu _{o}}=\frac{1}{4\pi d_{L}^{2}}\frac{dE_{gw}}{d\nu }(1+z)
00065 \end{equation}
00066 where $d_{L}=(1+z)r$ is the distance luminosity and  $\nu=(1+z)\nu _{o}$
00067 the frequency in the source frame.
00068 The event rate between z, z+dz as observed in our frame is given by:
00069 \begin{equation}
00070 dR(z)=\lambda _{p}\frac{R_{c}(z)}{1+z}{\frac{{dV}}{{dz}}}dz
00071 \end{equation}
00072 where $R_{c}(z)$ is the cosmic star formation rate and  $\lambda_{p}$
00073 is the mass fraction of the source progenitors. The
00074 term (1 +z) in the denominator accounts for the time dilatation by cosmic expansion of the
00075 observed rate.
00076 The element of the comoving volume is
00077 \begin{equation}
00078 dV = 4\pi r^2{{c}\over{H_o}}{{dz}\over{E(\Omega_i,z)}}
00079 \end{equation}
00080 where the function E$(\Omega_i,z)$ is
00081 defined by the equation:
00082 \begin{equation}
00083 E(\Omega_i,z) =[\Omega_m(1+z)^3 + \Omega_v]^{1/2}
00084 \end{equation}
00085 where $\Omega_m$ and $\Omega_v$ are respectively the density parameters
00086 due to matter (baryonic and non-baryonic) and the vacuum. 
00087 The cosmic star formation rate is computed as:
00088 \begin{equation}
00089 R_{c}(z) = 
00090 R_{SF2}(z)
00091 \frac{h_0}{0.65}\frac{E(\Omega_i,z)}{(1+z)^{3/2}}\; 
00092 \mathrm{M}_{\odot}\,\mathrm{yr}^{-1}\,\mathrm{Mpc}^{-3}
00093 \end{equation}
00094 where 
00095 \begin{equation}
00096 R_{SF2}(z) = \frac{0.15\,e^{3.4z}}{(22 + e^{3.4z})} \;
00097 \mathrm{M}_{\odot}\,\mathrm{yr}^{-1}\,\mathrm{Mpc}^{-3}
00098 \end{equation}
00099 is the cosmic star formation rate (Madau \&Porciani, 2001) in a matter-dominateduniverse ($\Omega_{m}=1$) with H$_o = 65\,\mathrm{km\,s}^{-1}\mathrm{Mpc}^{-1}$.
00100 Combining the previous equations one obtains:
00101 \begin{equation}
00102 \Omega _{gw}(\nu _{o})=\frac{8\pi G}{3c^{2}H_{o}^{3}}\lambda_{p}\, \nu_{o}\int_{0}^{z_{\sup }}\frac{dE_{gw}}{d\nu }\frac{R_{c}(z)}{E(z)(1+z)^2}dz
00103 \end{equation} 
00104 The upper limit of the integral is determined by the cutoff frequency in the
00105 source frame, $\nu _{\sup }$, as:
00106 \begin{equation}
00107 z_{\sup }=\frac{\nu _{\sup }}{\nu_{o}} - 1
00108 \end{equation}
00109 Note that we are limited to $z<5$ since the cosmic star formation rate is not
00110 modeled above. This restriction is without significant consequence
00111 since objects with $z>5 $ contribute very little to the integrated signal.
00112 
00113 
00114 
00115 \subsubsection*{Operating Instructions}
00116 the following program shows how to use the function LALAstroOmega
00117 
00118 \begin{verbatim}
00119 
00120 
00121 #include <stdio.h>
00122 #include <math.h>
00123 #include <lal/LALConfig.h>
00124 #include <lal/LALStdlib.h>
00125 #include <lal/Integrate.h>
00126 #include <lal/AstroOmega.h>
00127 
00128 NRCSID (ASTROOMEGATESTC, "$Id: AstroOmega.c,v 1.6 2007/06/08 14:41:54 bema Exp $");
00129 
00130 //define here the spectral energy density of a single source 
00131 
00132 static void SDensity (REAL8 *dEgw, REAL8 nu)
00133  {  *dEgw=pow(nu,3.);
00134   return;
00135   }
00136 
00137 int lalDebugLevel = 0;
00138 int main ()
00139  {
00140   static LALStatus status;
00141   DIntegrateIn  zint;
00142   AstroOmegaGeneralParams params;
00143   AstroOmegaSourceParams sourcep;
00144   AstroOmegaCosmoParams cosmop;
00145   REAL8 omegaz, nu, test;
00146 
00147   //define here the model parameters
00148   //cosmological parameters
00149   cosmop.ho=0.65;
00150   cosmop.density_matter=0.3;
00151   cosmop.density_vacuum=0.7;
00152   cosmop.density_k=0.;
00153 
00154   //source parameters for rotating pulsars
00155   sourcep.fact = 2.88E-22;
00156   sourcep.numax = 4000.;
00157   sourcep.SDensitySource = SDensity;
00158   params.cosmoparams = cosmop;
00159   params.sourceparams = sourcep;
00160   for (nu = 0.; nu < sourcep.numax ; nu = nu + 10.)
00161    {
00162     params.extraparams = &nu;
00163     LALAstroOmegaSource (&status, &test, nu, &params); 
00164     printf("omega(%f)= %.2e\n", nu, test);}
00165    return 0;
00166   }
00167 
00168 
00169 \end{verbatim}
00170 
00171 \subsubsection*{Notes}
00172 \vfill{\footnotesize\input{AstroOmegaCV}}
00173 
00174 </lalLaTeX> */ 
00175 
00176 #include <stdio.h>
00177 #include <math.h>
00178 #include <lal/LALConfig.h>
00179 #include <lal/LALStdlib.h>
00180 #include <lal/Integrate.h>
00181 #include <lal/AstroOmega.h>
00182 
00183 NRCSID (ASTROOMEGAC, "$Id: AstroOmega.c,v 1.6 2007/06/08 14:41:54 bema Exp $");
00184 
00185 
00186 static void SFR (REAL8 *result, REAL8 z);
00187 static void dAstroOmega (LALStatus *s, REAL8 *domegaz, REAL8 z, void *p);
00188 
00189 void LALAstroOmega (LALStatus *s, REAL8 *omeganu, REAL8 nu, void *p)
00190  {   
00191    DIntegrateIn  zint;
00192    AstroOmegaParams params;
00193    AstroOmegaSourceParams sourcep;
00194    AstroOmegaCosmoParams cosmop;
00195    REAL8 omegaz, zmax, numax, lambda;   
00196    INITSTATUS (s, "LALAstroOmega", ASTROOMEGAC);
00197    ATTATCHSTATUSPTR (s);
00198   
00199    params = *((AstroOmegaParams *)p);
00200    cosmop=params.cosmoparams;
00201    sourcep = params.sourceparams;
00202    numax= sourcep.numax;
00203    lambda = sourcep.lambda;
00204 
00205    if((nu >= numax)||(nu <= 0.)){*omeganu = 0.;}
00206    else
00207     {
00208      if (nu < (numax / 6.)) {zmax = 5.;}
00209      else {zmax = (numax / nu) - 1.;}
00210  
00211      zint.function = dAstroOmega;
00212      zint.xmin     = 0;
00213      zint.xmax     = zmax;
00214      zint.type     = ClosedInterval;
00215 
00216      LALDRombergIntegrate (s->statusPtr, &omegaz, &zint, &params); 
00217      *omeganu = 4.66e-56 * lambda / (cosmop.ho * cosmop.ho) * nu * omegaz;
00218      }
00219   CHECKSTATUSPTR (s);
00220   DETATCHSTATUSPTR (s);
00221   RETURN (s);
00222  }
00223 
00224 
00225 
00226 /*cosmic star formation rate */
00227 static void SFR (REAL8 *result, REAL8 z)
00228  {  
00229   /*cosmic star formation rate*/ 
00230   /*Madau & Pozetti, 2001 */
00231   *result = 0.15 * exp(3.4*z) / (22. + exp(3.4*z));
00232   
00233   return;
00234  }
00235 
00236 
00237 
00238 static void dAstroOmega (LALStatus *s, REAL8 *domegaz, REAL8 z, void *p)
00239  {
00240   AstroOmegaParams params;
00241   AstroOmegaSourceParams sourcep; 
00242   /*AstroOmegaCosmoParams cosmop;*/
00243   REAL8LALSDensity *SDensitySource;
00244   REAL8 Rc, dEgw, nu, nuz;
00245   
00246   INITSTATUS (s, "dAstroOmega", ASTROOMEGAC);
00247   ATTATCHSTATUSPTR (s); 
00248   params = *((AstroOmegaParams *)p);
00249   sourcep = params.sourceparams;
00250   SDensitySource = sourcep.SDensitySource;
00251   nu = *((REAL8 *)params.extraparams);
00252   
00253   /*frequency in the source frame*/
00254   nuz = (1. + z) * nu;
00255   /*single spectral energy density in the source frame*/
00256   SDensitySource(&dEgw, nuz);
00257   /*cosmic formation rate*/
00258   SFR(&Rc, z); 
00259   *domegaz = dEgw * Rc / pow((1.+z),3.5);
00260   CHECKSTATUSPTR (s);
00261   DETATCHSTATUSPTR (s);
00262   RETURN (s);
00263  }
00264 

Generated on Wed Jul 23 03:16:43 2008 for LAL by  doxygen 1.5.2