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 }
1.4.6