et_bin_nsbh.h

00001 /*
00002  *  Definition of Lorene class Etoile_bin_nsbh
00003  *
00004  */
00005 
00006 /*
00007  *   Copyright (c) 2003 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 __ET_BIN_NSBH_H_ 
00027 #define __ET_BIN_NSBH_H_ 
00028 
00029 /*
00030  * $Id: et_bin_nsbh.h,v 1.8 2006/09/25 10:01:45 p_grandclement Exp $
00031  * $Log: et_bin_nsbh.h,v $
00032  * Revision 1.8  2006/09/25 10:01:45  p_grandclement
00033  * Addition of N-dimensional Tbl
00034  *
00035  * Revision 1.7  2006/06/01 12:47:50  p_grandclement
00036  * update of the Bin_ns_bh project
00037  *
00038  * Revision 1.6  2006/04/25 07:21:54  p_grandclement
00039  * Various changes for the NS_BH project
00040  *
00041  * Revision 1.5  2005/10/18 13:12:31  p_grandclement
00042  * update of the mixted binary codes
00043  *
00044  * Revision 1.4  2005/08/29 15:10:12  p_grandclement
00045  * Addition of things needed :
00046  *   1) For BBH with different masses
00047  *   2) Provisory files for the mixted binaries (Bh and NS) : THIS IS NOT
00048  *   WORKING YET !!!
00049  *
00050  * Revision 1.3  2004/06/09 06:32:51  k_taniguchi
00051  * Introduce set_n_auto() and set_confpsi_auto().
00052  *
00053  * Revision 1.2  2003/10/24 12:25:19  k_taniguchi
00054  * Introduce the method of update metric for NS-BH
00055  *
00056  * Revision 1.1  2003/10/21 11:46:13  k_taniguchi
00057  * Definition of class Et_bin_nsbh
00058  *
00059  *
00060  * $Header: /cvsroot/Lorene/C++/Include/et_bin_nsbh.h,v 1.8 2006/09/25 10:01:45 p_grandclement Exp $
00061  *
00062  */
00063 
00064 // Lorene headers
00065 #include "etoile.h"
00066 #include "bhole.h"
00067 
00075 class Et_bin_nsbh : public Etoile_bin {
00076 
00077     // Data : 
00078     // -----
00079     protected:
00081     Tenseur n_auto ;
00082 
00084     Tenseur n_comp ;
00085 
00089     Tenseur d_n_auto ;
00090 
00094     Tenseur d_n_comp ;
00095 
00097     Tenseur confpsi ;
00098 
00100     Tenseur confpsi_auto ;
00101 
00105     Tenseur confpsi_comp ;
00106 
00110     Tenseur d_confpsi_auto ;
00111 
00115     Tenseur d_confpsi_comp ;
00116 
00122     Tenseur_sym taij_auto ;
00123 
00129     Tenseur_sym taij_comp ;
00130 
00136     Tenseur_sym taij_tot ;
00137 
00142     Tenseur_sym tkij_auto ;
00143 
00148     Tenseur_sym tkij_tot ;
00149 
00154     Cmp ssjm1_lapse ;
00155 
00160     Cmp ssjm1_confpsi ;
00161 
00162     // Constructors - Destructor
00163     // -------------------------
00164     public:
00180     Et_bin_nsbh(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
00181         bool irrot, const Base_vect& ref_triad_i) ;
00182 
00183     Et_bin_nsbh(const Et_bin_nsbh& ) ;      
00184 
00197     Et_bin_nsbh(Map& mp_i, const Eos& eos_i, const Base_vect& ref_triad_i,
00198         FILE* fich, bool old = false) ;         
00199 
00200     virtual ~Et_bin_nsbh() ;            
00201  
00202 
00203     // Mutators / assignment
00204     // ---------------------
00205     public:
00207     void operator=(const Et_bin_nsbh&) ;    
00208     
00212     Tenseur& set_n_auto() ;
00213 
00217     Tenseur& set_n_comp() ;
00218 
00222     Tenseur& set_confpsi_auto() ;
00223 
00227     Tenseur& set_confpsi_comp() ;
00228 
00229     // Accessors
00230     // ---------
00231     public:
00235     const Tenseur& get_n_auto() const {return n_auto;} ;
00236 
00240     const Tenseur& get_n_comp() const {return n_comp;} ;
00241 
00245     const Tenseur& get_d_n_auto() const {return d_n_auto;} ;
00246 
00250     const Tenseur& get_d_n_comp() const {return d_n_comp;} ;
00251 
00253     const Tenseur& get_confpsi() const {return confpsi;} ;
00254 
00258     const Tenseur& get_confpsi_auto() const {return confpsi_auto;} ;
00259 
00263     const Tenseur& get_confpsi_comp() const {return confpsi_comp;} ;
00264 
00268     const Tenseur& get_d_confpsi_auto() const {return d_confpsi_auto;} ;
00269 
00273     const Tenseur& get_d_confpsi_comp() const {return d_confpsi_comp;} ;
00274 
00279     const Tenseur_sym& get_taij_auto() const {return taij_auto;} ;
00280 
00285     const Tenseur_sym& get_taij_comp() const {return tkij_comp;} ;
00286 
00292     const Tenseur_sym& get_taij_tot() const {return taij_tot;} ;
00293 
00298     const Tenseur_sym& get_tkij_auto() const {return tkij_auto;} ;
00299 
00304     const Tenseur_sym& get_tkij_tot() const {return tkij_tot;} ;
00305 
00306 
00307     // Outputs
00308     // -------
00309     public:
00310     virtual void sauve(FILE *) const ;      
00311 
00312     protected:
00314     virtual ostream& operator>>(ostream& ) const ;
00315 
00316 
00317     // Global quantities
00318     // -----------------
00319 
00320     // Computational routines
00321     // ----------------------
00322     public:
00323         
00324     void fait_taij_auto() ;
00331     void update_metric(const Bhole& comp) ;
00332 
00339     void update_metric_der_comp(const Bhole& comp) ;
00340 
00377     virtual void equilibrium_nsbh(double ent_c, int mermax,
00378                   int mermax_poisson, double relax_poisson,
00379                   int mermax_potvit, double relax_potvit,
00380                   double thres_adapt,
00381                   const Tbl& fact, Tbl& diff) ;
00382 
00383     void equilibrium_nsbh (bool, double, int&, int, int, double, int, double, Tbl&) ;
00384     
00395     virtual void kinematics(double omega, double x_axe) ; 
00396     
00397     double compute_angul() const ;
00398     double compute_axe(double) const ;
00399     
00400     friend class Bin_ns_bh ;
00401 
00402 };
00403 
00404 #endif

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