00001 /* 00002 * Copyright (C) 2007 Jolien Creighton, 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 /*<lalVerbatim file="AstroOmegaHV"> 00021 Author: Regimbau Tania 00022 $Id: AstroOmega.h,v 1.7 2007/06/08 14:41:54 bema Exp $ 00023 </lalVerbatim> */ 00024 00025 /*<lalLaTeX> 00026 00027 \section{Header \texttt{AstroOmega.h}} 00028 \label{s:AstroOmega.h} 00029 00030 compute the energy density spectrum of stochastic backgrounds produced 00031 by cosmological population of astrophysical sources. 00032 00033 \subsection*{Synopsis} 00034 \begin{verbatim} 00035 #include <lal/AstroOmega.h> 00036 \end{verbatim} 00037 </lalLaTeX> */ 00038 00039 #ifndef _ASTROOMEGA_H 00040 #define _ASTROOMEGA_H 00041 #include <stdio.h> 00042 #include <math.h> 00043 #include <lal/LALConfig.h> 00044 #include <lal/LALStdlib.h> 00045 #include <lal/Integrate.h> 00046 00047 #ifdef __cplusplus 00048 extern "C" { 00049 #endif 00050 NRCSID (ASTROOMEGAH, "$Id: AstroOmega.h,v 1.7 2007/06/08 14:41:54 bema Exp $"); 00051 00052 /*<lalLaTeX> 00053 \subsection*{Error conditions} 00054 the errors that may occur in this module are integration errors already defined in Integrate.h 00055 00056 \subsection*{Structures} 00057 These are function pointers corresponding to the spectral energy density of a single source. 00058 \begin{verbatim} 00059 typedef void (REAL8LALSDensity) (REAL8 *output, REAL8 input); 00060 \end{verbatim} 00061 These are input structures corresponding to the model parameters (the cosmological model parameters and the source model parameters) 00062 00063 cosmological model parameters: 00064 00065 \begin{verbatim} 00066 typedef struct 00067 tagAstroOmegaCosmoParams 00068 { 00069 REAL8 ho; Hubble parameter 00070 REAL8 density_matter; density parameter of matter 00071 REAL8 density_vacuum; density parameter of vacuum 00072 REAL8 density_k; density parameter of curvature 00073 } 00074 AstroOmegaCosmoParams; 00075 \end{verbatim} 00076 00077 source parameters 00078 00079 \begin{verbatim} 00080 typedef struct 00081 tagAstroOmegaSourceParams 00082 { 00083 REAL8LALSDensity *SDensitySource; single spectral energy density 00084 REAL8 numax; frequency cutoff in the source frame 00085 REAL8 lambda; mass fraction of source progenitors expressed in inverse solar masses. 00086 } 00087 AstroOmegaSourceParams; 00088 \end{verbatim} 00089 00090 model parameters (cosmological + source) 00091 00092 \begin{verbatim} 00093 typedef struct 00094 tagAstroOmegaParams 00095 { 00096 AstroOmegaCosmoParams cosmoparams; 00097 AstroOmegaSourceParams sourceparams; 00098 void *extraparams; 00099 } 00100 AstroOmegaParams; 00101 \end{verbatim} 00102 00103 \vfill{\footnotesize\input{AstroOmegaHV}} 00104 \newpage\input{AstroOmegaC} 00105 </lalLaTeX> */ 00106 00107 /*type corresponding to the spectral energy density of a single source*/ 00108 typedef void (REAL8LALSDensity) (REAL8 *output, REAL8 input); 00109 00110 /*MODEL PARAMETERS*/ 00111 00112 /*cosmological model*/ 00113 typedef struct 00114 tagAstroOmegaCosmoParams 00115 { 00116 REAL8 ho; 00117 REAL8 density_matter; 00118 REAL8 density_vacuum; 00119 REAL8 density_k; 00120 } 00121 AstroOmegaCosmoParams; 00122 /*source model*/ 00123 /*in the general case, the user should define previously the single spectral energy density*/ 00124 typedef struct 00125 tagAstroOmegaSourceParams 00126 { 00127 REAL8LALSDensity *SDensitySource; 00128 REAL8 numax; 00129 REAL8 lambda; 00130 } 00131 AstroOmegaSourceParams; 00132 00133 00134 typedef struct 00135 tagAstroOmegaParams 00136 { 00137 AstroOmegaCosmoParams cosmoparams; 00138 AstroOmegaSourceParams sourceparams; 00139 void *extraparams; 00140 } 00141 AstroOmegaParams; 00142 00143 00144 00145 /*functions returning $\Omega _{gw}(\nu _{o})$*/ 00146 00147 void 00148 LALAstroOmega ( 00149 LALStatus *status, 00150 REAL8 *result, 00151 REAL8 nu, 00152 void *params 00153 ); 00154 00155 00156 00157 #ifdef __cplusplus 00158 } 00159 #endif 00160 00161 #endif /* _ASTROOMEGA_H */
1.5.2