BlackHoleMode.h

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 Jolien Creighton
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 #ifndef _BLACKHOLEMODE_H
00021 #define _BLACKHOLEMODE_H
00022 
00023 #include <lal/LALDatatypes.h>
00024 
00025 NRCSID( BLACKHOLEMODEH, "$Id: BlackHoleMode.h,v 1.2 2007/06/08 14:41:52 bema Exp $" );
00026 
00027 
00028 #ifdef  __cplusplus
00029 extern "C" {
00030 #pragma } /* to match the previous brace */
00031 #endif
00032 
00033 
00034 typedef struct tagBlackHoleMode {
00035   REAL8 a;
00036   int l;
00037   int m;
00038   int s;
00039   COMPLEX16 A;
00040   COMPLEX16 omega;
00041 } BlackHoleMode;
00042 
00043 
00044 
00045 typedef struct tagBlackHoleModeEigenvalues
00046 {
00047   REAL8 a;
00048   COMPLEX16 A;
00049   COMPLEX16 omega;
00050 }
00051 BlackHoleModeEigenvalues;
00052 
00053 typedef struct tagBlackHoleModeTable
00054 {
00055   int l;
00056   int m; /* absolute value */
00057   int s;
00058   /* these describe the table of mode values */
00059   size_t eigenTableSize;
00060   struct tagBlackHoleModeEigenvalues *positiveEigenTable;
00061   struct tagBlackHoleModeEigenvalues *negativeEigenTable;
00062 }
00063 BlackHoleModeTable;
00064 
00065 
00066 /* low-level routines: these use Leaver's conventions */
00067 void XLALDestroyBlackHoleModeTable( BlackHoleModeTable *mode );
00068 BlackHoleModeTable * XLALCreateBlackHoleModeTable( int l, int m, int s );
00069 int XLALBlackHoleModeEigenvaluesLeaverT( COMPLEX16 *A, COMPLEX16 *omega, REAL8 a, BlackHoleModeTable *mode );
00070 int XLALBlackHoleModeEigenvaluesLeaver( COMPLEX16 *A, COMPLEX16 *omega, REAL8 a, int l, int m, int s );
00071 
00072 
00073 /* medium-level routines: the input values are in standard conventions but the
00074  * parameter structure has data in Leaver's conventions */
00075 int XLALSetBlackHoleModeParams( struct tagBlackHoleMode *params, REAL8 a, int l, int m, int s );
00076 int XLALSpheroidalWaveFunction1( COMPLEX16 *result, REAL8 mu, struct tagBlackHoleMode *mode );
00077 int XLALSpheroidalWaveFunctionNorm( COMPLEX16 *norm, struct tagBlackHoleMode *params );
00078 int XLALSpheroidalWaveFunction( COMPLEX16 *result, REAL8 mu, struct tagBlackHoleMode *params );
00079 
00080 
00081 /* high-level routines: these use standard conventions */
00082 int XLALSpinWeightedSpheroidalHarmonic( COMPLEX16 *result, REAL8 mu, REAL8 a, int l, int m, int s );
00083 
00084 int XLALBlackHoleRingdownAmplitude(
00085     COMPLEX16 *amplitudePlus,
00086     COMPLEX16 *amplitudeCross,
00087     REAL8 massSolar,
00088     REAL8 fracMassLoss,
00089     REAL8 distanceMpc,
00090     REAL8 inclinationRad,
00091     REAL8 azimuthRad,
00092     BlackHoleMode *mode
00093     );
00094 int XLALBlackHoleRingdownWaveform(
00095     REAL4TimeSeries *plus,
00096     REAL4TimeSeries *cross,
00097     REAL8 massSolar,
00098     REAL8 spinParam,
00099     REAL8 fracMassLoss,
00100     REAL8 distanceMpc,
00101     REAL8 inclinationRad,
00102     REAL8 azimuthRad,
00103     int l,
00104     int m
00105     );
00106 
00107 
00108 #ifdef  __cplusplus
00109 #pragma { /* to match the next brace */
00110 }
00111 #endif
00112 
00113 #endif /* _BLACKHOLEMODE_H */

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