00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 char binhor_viriel_C[] = "$Header: /cvsroot/Lorene/C++/Source/Bin_hor/binhor_viriel.C,v 1.3 2007/04/13 15:28:55 f_limousin Exp $" ;
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include<math.h>
00045
00046
00047 #include "tensor.h"
00048 #include "isol_hor.h"
00049
00050 double Single_hor::viriel_seul () const{
00051
00052 int nz1 = mp.get_mg()->get_nzone() ;
00053
00054 Valeur** devel_psi (psi_auto.asymptot(1)) ;
00055 Valeur** devel_n (n_auto.asymptot(1)) ;
00056
00057 double erreur = (2*(*devel_psi[1])(nz1-1, 0, 0, 0)
00058 + (*devel_n[1])(nz1-1, 0, 0, 0))/fabs ((*devel_n[1])(nz1-1, 0, 0, 0)) ;
00059
00060 return erreur ;
00061 }
00062
00063
00064 double Bin_hor::viriel () const{
00065
00066 int nz_un = hole1.mp.get_mg()->get_nzone() ;
00067 int nz_deux = hole2.mp.get_mg()->get_nzone() ;
00068
00069 Valeur** devel_psi_un (hole1.psi_auto.asymptot(1)) ;
00070 Valeur** devel_psi_deux (hole2.psi_auto.asymptot(1)) ;
00071 Valeur** devel_n_un (hole1.n_auto.asymptot(1)) ;
00072 Valeur** devel_n_deux (hole2.n_auto.asymptot(1)) ;
00073
00074 double res =
00075 (2*(*devel_psi_un[1])(nz_un-1, 0, 0, 0)+
00076 2*(*devel_psi_deux[1])(nz_deux-1, 0, 0, 0)+
00077 (*devel_n_deux[1])(nz_deux-1, 0, 0, 0) +
00078 (*devel_n_un[1])(nz_un-1, 0, 0, 0))
00079 / fabs ((*devel_n_deux[1])(nz_deux-1, 0, 0, 0) +
00080 (*devel_n_un[1])(nz_un-1, 0, 0, 0)) ;
00081
00082 return res ;
00083 }
00084