bin_ns_bh_omegaana.C

00001 /*
00002  *  Methods of class Bin_ns_bh to set analytical value to omega
00003  *
00004  *    (see file bin_ns_bh.h for documentation).
00005  *
00006  */
00007 
00008 /*
00009  *   Copyright (c) 2004 Keisuke Taniguchi
00010  *
00011  *   This file is part of LORENE.
00012  *
00013  *   LORENE is free software; you can redistribute it and/or modify
00014  *   it under the terms of the GNU General Public License version 2
00015  *   as published by the Free Software Foundation.
00016  *
00017  *   LORENE is distributed in the hope that it will be useful,
00018  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020  *   GNU General Public License for more details.
00021  *
00022  *   You should have received a copy of the GNU General Public License
00023  *   along with LORENE; if not, write to the Free Software
00024  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025  *
00026  */
00027 
00028 char bin_ns_bh_omegaana_C[] = "$Header: /cvsroot/Lorene/C++/Source/Bin_ns_bh/bin_ns_bh_omegaana.C,v 1.2 2005/11/30 11:09:06 p_grandclement Exp $" ;
00029 
00030 /*
00031  * $Id: bin_ns_bh_omegaana.C,v 1.2 2005/11/30 11:09:06 p_grandclement Exp $
00032  * $Log: bin_ns_bh_omegaana.C,v $
00033  * Revision 1.2  2005/11/30 11:09:06  p_grandclement
00034  * Changes for the Bin_ns_bh project
00035  *
00036  * Revision 1.1  2004/06/09 06:27:40  k_taniguchi
00037  * First revision.
00038  *
00039  *
00040  * $Header: /cvsroot/Lorene/C++/Source/Bin_ns_bh/bin_ns_bh_omegaana.C,v 1.2 2005/11/30 11:09:06 p_grandclement Exp $
00041  *
00042  */
00043 
00044 // C headers
00045 #include <math.h>
00046 
00047 // Lorene headers
00048 #include "bin_ns_bh.h"
00049 #include "unites.h"
00050 
00051 void Bin_ns_bh::analytical_omega() {
00052 
00053     // NS-BH binary systems should be relativistic
00054     // -------------------------------------------
00055     if ( !star.is_relativistic() ) {
00056         abort() ;
00057     }
00058 
00059     using namespace Unites ;
00060 
00061     double rr = separation() ;
00062     double mtot = star.mass_g() + hole.masse_adm_seul() / ggrav ;
00063 
00064     // Compaction factor
00065     double compact = ggrav * mtot / rr ;
00066 
00067     double omega2 ;
00068 
00069     if ( star.is_irrotational() ) {
00070 
00071         // Irrotational case
00072         // -----------------
00073 
00074         omega2 = ggrav * mtot / pow(rr, 3.)
00075         * (1. - 2.75 * compact + 8.625 * compact*compact ) ;
00076 
00077     }
00078     else {
00079         // Corotating case
00080         // ---------------
00081 
00082         // a0/R
00083         double a0sr = star.ray_eq() / rr ;
00084 
00085     // Rescaled moment of inertia 5 I / (2 M a0^2)
00086     double ired = double(5)/double(3) * ( 1. - double(6)/M_PI/M_PI ) ;
00087     omega2 = ggrav * mtot / pow(rr, 3.)
00088       * (1. - compact * ( 2.75 + 2.*a0sr*a0sr * ired
00089                   - 0.48*pow(a0sr, 4) * ired*ired )
00090          + compact*compact * ( 8.625 + 2.75*a0sr*a0sr * ired
00091                    + 2.*pow(a0sr, 4) * ired*ired ) ) ;
00092 
00093     }
00094 
00095     set_omega (sqrt( omega2 )) ;
00096     
00097     // The derived quantities are obsolete:
00098     del_deriv() ;
00099 
00100 }

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