00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 char single_param_C[] = "$Header: /cvsroot/Lorene/C++/Source/Isol_hor/single_param.C,v 1.1 2007/04/13 15:28:35 f_limousin Exp $" ;
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include "headcpp.h"
00044
00045
00046 #include <stdlib.h>
00047 #include <assert.h>
00048
00049
00050 #include "isol_hor.h"
00051 #include "metric.h"
00052 #include "evolution.h"
00053 #include "unites.h"
00054 #include "scalar.h"
00055 #include "vector.h"
00056 #include "graphique.h"
00057 #include "utilitaires.h"
00058
00059
00060
00061 const Scalar Single_hor::b_tilde()const {
00062
00063 Scalar tmp = contract( beta, 0, tgam.radial_vect()
00064 .down(0, tgam), 0) ;
00065
00066 return tmp ;
00067
00068 }
00069
00070 const Scalar Single_hor::darea_hor() const {
00071
00072 Scalar tmp = sqrt( get_gam().cov()(2,2) * get_gam().cov()(3,3) -
00073 get_gam().cov()(2,3) * get_gam().cov()(2,3)) ;
00074
00075 tmp.std_spectral_base() ;
00076
00077 return tmp ;
00078
00079 }
00080
00081 double Single_hor::area_hor() const {
00082
00083 Scalar integrand (darea_hor()) ;
00084 integrand.raccord(1) ;
00085
00086 return mp.integrale_surface(integrand, radius + 1e-15) ;
00087
00088 }
00089
00090 double Single_hor::radius_hor() const {
00091
00092 double resu = area_hor() / (4. * M_PI);
00093
00094 resu = pow(resu, 1./2.) ;
00095
00096 return resu ;
00097
00098 }
00099
00100 double Single_hor::ang_mom_hor()const {
00101
00102
00103 Vector phi (ff.get_mp(), CON, *(ff.get_triad()) ) ;
00104
00105 Scalar tmp (ff.get_mp() ) ;
00106 tmp = 1 ;
00107 tmp.std_spectral_base() ;
00108 tmp.mult_rsint() ;
00109
00110 phi.set(1) = 0. ;
00111 phi.set(2) = 0. ;
00112 phi.set(3) = tmp ;
00113
00114 Scalar k_rphi = contract(contract( get_gam().radial_vect(), 0,
00115 get_k_dd(), 0), 0,
00116 phi, 0) / (8. * M_PI) ;
00117
00118 Scalar integrand = k_rphi * darea_hor() ;
00119
00120
00121 double ang_mom = mp.integrale_surface(integrand, radius + 1e-15) ;
00122
00123 return ang_mom ;
00124
00125 }
00126
00127
00128 double Single_hor::mass_hor()const {
00129
00130 double rr = radius_hor() ;
00131
00132 double tmp = sqrt( pow( rr, 4) + 4 * pow( ang_mom_hor(), 2) ) / ( 2 * rr ) ;
00133
00134 return tmp ;
00135
00136 }
00137
00138
00139 double Single_hor::kappa_hor() const{
00140
00141 double rr = radius_hor() ;
00142
00143 double jj = ang_mom_hor() ;
00144
00145 double tmp = (pow( rr, 4) - 4 * pow( jj, 2)) / ( 2 * pow( rr, 3)
00146 * sqrt( pow( rr, 4) + 4 * pow( jj, 2) ) ) ;
00147
00148 return tmp ;
00149
00150 }
00151
00152
00153 double Single_hor::omega_hor()const {
00154
00155 double rr = radius_hor() ;
00156
00157 double jj = ang_mom_hor() ;
00158
00159 double tmp = 2 * jj / ( rr * sqrt( pow( rr, 4) + 4 * pow( jj, 2) ) ) ;
00160
00161 return tmp ;
00162
00163 }
00164
00165
00166
00167 double Single_hor::ang_mom_adm()const {
00168
00169 Scalar integrand = (get_k_dd()(1,3) - get_gam().cov()(1,3) * trK) /
00170 (8. * M_PI) ;
00171
00172 integrand.mult_rsint() ;
00173
00174
00175 double tmp = mp.integrale_surface_infini(integrand) ;
00176
00177 return tmp ;
00178
00179 }
00180
00181
00182
00183 Scalar Single_hor::expansion() const {
00184
00185 Scalar expa = contract(get_gam().radial_vect().derive_cov(get_gam()), 0,1)
00186 + contract(contract(get_k_dd(), 0, get_gam().radial_vect(), 0),
00187 0, get_gam().radial_vect(), 0) - trK ;
00188
00189 return expa ;
00190 }