bin_bhns_extr.h

00001 /*
00002  *  Definition of Lorene class Bin_bhns_extr
00003  *
00004  */
00005 
00006 /*
00007  *   Copyright (c) 2004-2005 Keisuke Taniguchi
00008  *
00009  *   This file is part of LORENE.
00010  *
00011  *   LORENE is free software; you can redistribute it and/or modify
00012  *   it under the terms of the GNU General Public License version 2
00013  *   as published by the Free Software Foundation.
00014  *
00015  *   LORENE is distributed in the hope that it will be useful,
00016  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *   GNU General Public License for more details.
00019  *
00020  *   You should have received a copy of the GNU General Public License
00021  *   along with LORENE; if not, write to the Free Software
00022  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  *
00024  */
00025 
00026 #ifndef __BIN_BHNS_EXTR_H_ 
00027 #define __BIN_BHNS_EXTR_H_ 
00028 
00029 /*
00030  * $Id: bin_bhns_extr.h,v 1.2 2005/02/28 23:02:51 k_taniguchi Exp $
00031  * $Log: bin_bhns_extr.h,v $
00032  * Revision 1.2  2005/02/28 23:02:51  k_taniguchi
00033  * Addition of some codes for the conformally flat case
00034  *
00035  * Revision 1.1  2004/11/30 20:36:00  k_taniguchi
00036  * *** empty log message ***
00037  *
00038  *
00039  * $Header: /cvsroot/Lorene/C++/Include/bin_bhns_extr.h,v 1.2 2005/02/28 23:02:51 k_taniguchi Exp $
00040  *
00041  */
00042 
00043 // Lorene header
00044 #include "et_bin_bhns_extr.h"
00045 #include "etoile.h"
00046 
00053 class Bin_bhns_extr {
00054 
00055     // Data : 
00056     // -----
00057     private:
00059         const Base_vect_cart ref_triad ;
00060 
00062     Et_bin_bhns_extr star ;
00063 
00067     double omega ;
00068 
00070     double separ ;
00071 
00073     double mass_bh ;
00074 
00075     // Derived data :
00076     // ------------
00077     private :
00082     mutable double* p_xa_barycenter_extr ;
00083 
00087     mutable double* p_ya_barycenter_extr ;
00088 
00092         mutable double* p_mass_b_extr ;
00093 
00094     // Constructors - Destructor
00095     // -------------------------
00096     public:
00112     Bin_bhns_extr(Map& mp, int nzet, const Eos& eos,
00113               bool irrot, bool relat, bool kerrs, bool multi) ;
00114 
00115     Bin_bhns_extr(const Bin_bhns_extr& ) ;      
00116 
00123     Bin_bhns_extr(Map& mp, const Eos& eos, FILE* fich) ;
00124 
00125     ~Bin_bhns_extr() ;          
00126  
00127 
00128     // Memory management
00129     // -----------------
00130     private:
00132     void del_deriv() const ; 
00133     
00135     void set_der_0x0() const ; 
00136 
00137 
00138     // Mutators / assignment
00139     // ---------------------
00140     public:
00142     void operator=(const Bin_bhns_extr&) ;
00143 
00145     Et_bin_bhns_extr& set_ns()
00146         { del_deriv() ;
00147           return star ; } ;
00148 
00150     double& set_omega() { return omega ; } ;
00151 
00153     double& set_separ() { return separ ; } ;
00154 
00156     double& set_mass_bh() { return mass_bh ; } ;
00157 
00158     // Accessors
00159     // ---------
00160     public:
00162     const Et_bin_bhns_extr& get_ns() const
00163          { return star ; } ;
00164 
00166     double get_omega() const { return omega ; } ;
00167 
00171     double get_separ() const { return separ ; } ;
00172 
00174     double get_mass_bh() const { return mass_bh ; } ;
00175 
00176     // Outputs
00177     // -------
00178     public:
00179     void sauve(FILE* ) const ;      
00180     
00182     friend ostream& operator<<(ostream& , const Bin_bhns_extr& ) ;  
00183 
00185     void display_poly(ostream& ) const ;
00186 
00187     private:
00189     ostream& operator>>(ostream& ) const ;
00190 
00191     // Computational routines
00192     // ----------------------
00193     public:
00198     double xa_barycenter_extr() const ;
00199 
00200     // Absolute coordinate Y of the barycenter of the baryon density
00202     double ya_barycenter_extr() const ;
00203 
00207     double mass_b_extr() const ;
00208 
00229     void orbit_omega_ks(double fact_omeg_min, double fact_omeg_max) ;
00230 
00251     void orbit_omega_cf(double fact_omeg_min, double fact_omeg_max) ;
00252 
00256     void analytical_omega() ;
00257 
00262     void analytical_shift() ;
00263 
00264 };
00265 ostream& operator<<(ostream& , const Bin_bhns_extr& ) ;
00266 
00267 #endif

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