et_bin_nsbh_kinema.C

00001 /*
00002  *   Copyright (c) 2000-2001 Eric Gourgoulhon
00003  *
00004  *   This file is part of LORENE.
00005  *
00006  *   LORENE is free software; you can redistribute it and/or modify
00007  *   it under the terms of the GNU General Public License as published by
00008  *   the Free Software Foundation; either version 2 of the License, or
00009  *   (at your option) any later version.
00010  *
00011  *   LORENE is distributed in the hope that it will be useful,
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *   GNU General Public License for more details.
00015  *
00016  *   You should have received a copy of the GNU General Public License
00017  *   along with LORENE; if not, write to the Free Software
00018  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019  *
00020  */
00021 
00022 
00023 char et_bin_kinema_nsbhC[] = "$Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_nsbh_kinema.C,v 1.3 2008/08/19 06:42:00 j_novak Exp $" ;
00024 
00025 /*
00026  * $Id: et_bin_nsbh_kinema.C,v 1.3 2008/08/19 06:42:00 j_novak Exp $
00027  * $Log: et_bin_nsbh_kinema.C,v $
00028  * Revision 1.3  2008/08/19 06:42:00  j_novak
00029  * Minor modifications to avoid warnings with gcc 4.3. Most of them concern
00030  * cast-type operations, and constant strings that must be defined as const char*
00031  *
00032  * Revision 1.2  2005/10/18 13:12:33  p_grandclement
00033  * update of the mixted binary codes
00034  *
00035  * Revision 1.1  2005/08/31 09:32:50  p_grandclement
00036  * Forgot this file
00037  *
00038  *
00039  * $Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_nsbh_kinema.C,v 1.3 2008/08/19 06:42:00 j_novak Exp $
00040  *
00041  */
00042 
00043 // Headers Lorene
00044 #include "et_bin_nsbh.h"
00045 #include "graphique.h"
00046 
00047 void Et_bin_nsbh::kinematics(double omega, double) {
00048 
00049     int nz = mp.get_mg()->get_nzone() ; 
00050     int nzm1 = nz - 1 ; 
00051     
00052     // --------------------
00053     // Computation of B^i/N
00054     // --------------------
00055     
00056     //  1/ Computation of  - omega m^i
00057 
00058     const Coord& xa = mp.xa ; 
00059     const Coord& ya = mp.ya ; 
00060 
00061     bsn.set_etat_qcq() ; 
00062     
00063     bsn.set(0) = -omega * ya ;
00064     bsn.set(1) = omega * xa ;
00065     bsn.set(2) = 0 ;
00066     
00067     bsn.annule(nzm1, nzm1) ;    // set to zero in the ZEC
00068    
00069     //  2/ Addition of shift and division by lapse
00070     // See Eq (47) from Gourgoulhon et al. (2001)
00071 
00072     bsn = -( bsn + shift ) / nnn ;
00073     
00074     bsn.annule(nzm1, nzm1) ;    // set to zero in the ZEC
00075     bsn.set_std_base() ;   // set the bases for spectral expansions
00076     
00077     //-------------------------
00078     // Centrifugal potentatial
00079     //-------------------------
00080 
00081     if (relativistic) {
00082 
00083     // Lorentz factor between the co-orbiting observer and the Eulerian one
00084       // See Eq (23) from Gourgoulhon et al. (2001)
00085       
00086       Tenseur gam0 = 1 / sqrt( 1-sprod(bsn, bsn) ) ;
00087       pot_centri = - log( gam0 ) ;
00088     }
00089     else {
00090 
00091     pot_centri.set_etat_qcq() ; 
00092     
00093 
00094     // See Eq (40) from Gourgoulhon et al. (2001)
00095     pot_centri.set() = - 0.5 * omega * omega * (
00096                 xa *xa + ya * ya ) ; 
00097 
00098     }
00099     
00100     pot_centri.annule(nzm1, nzm1) ; // set to zero in the external domain
00101     pot_centri.set_std_base() ;   // set the bases for spectral expansions
00102     
00103     // The derived quantities are obsolete
00104     // -----------------------------------
00105     
00106     del_deriv() ;                
00107     
00108     
00109 }

Generated on Tue Feb 7 01:35:16 2012 for LORENE by  doxygen 1.4.6