et_bin_bhns_extr.h

00001 /*
00002  *  Definition of Lorene class Et_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 __ET_BIN_BHNS_EXTR_H_ 
00027 #define __ET_BIN_BHNS_EXTR_H_ 
00028 
00029 /*
00030  * $Id: et_bin_bhns_extr.h,v 1.4 2005/02/28 23:04:56 k_taniguchi Exp $
00031  * $Log: et_bin_bhns_extr.h,v $
00032  * Revision 1.4  2005/02/28 23:04:56  k_taniguchi
00033  * Addition of two indicators for the backfround metric and the boundary
00034  * condition, and some codes for the conformally flat case
00035  *
00036  * Revision 1.3  2005/01/31 20:25:22  k_taniguchi
00037  * Change the argument of equil_bhns_extr_ylm.
00038  *
00039  * Revision 1.2  2004/12/29 16:26:02  k_taniguchi
00040  * Addition of a comutational method to calculate equilibrium figures
00041  * with a multipole falloff condition at the outer boundary.
00042  *
00043  * Revision 1.1  2004/11/30 20:36:31  k_taniguchi
00044  * *** empty log message ***
00045  *
00046  *
00047  * $Header: /cvsroot/Lorene/C++/Include/et_bin_bhns_extr.h,v 1.4 2005/02/28 23:04:56 k_taniguchi Exp $
00048  *
00049  */
00050 
00051 // Lorene headers
00052 #include "etoile.h"
00053 
00064 class Et_bin_bhns_extr : public Etoile_bin {
00065 
00066     // Data
00067     // ----
00068     protected:
00069 
00074         bool kerrschild ;
00075 
00080     bool multipole ;
00081 
00082     // Constructors - Destructor
00083     // -------------------------
00084     public:
00104     Et_bin_bhns_extr(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
00105              bool irrot, const Base_vect& ref_triad_i,
00106              bool kerrs, bool multi) ;
00107 
00108     Et_bin_bhns_extr(const Et_bin_bhns_extr& ) ;    
00109 
00122     Et_bin_bhns_extr(Map& mp_i, const Eos& eos_i,
00123              const Base_vect& ref_triad_i, FILE* fich) ;
00124 
00125     virtual ~Et_bin_bhns_extr() ;           
00126  
00127 
00128     // Mutators / assignment
00129     // ---------------------
00130     public:
00132     void operator=(const Et_bin_bhns_extr&) ;   
00133 
00134     // Accessors
00135     // ---------
00136     public:
00137 
00141     bool in_kerrschild() const {return kerrschild ;} ;
00142 
00146     bool with_multipole() const {return multipole ;} ;
00147 
00148     // Outputs
00149     // -------
00150     public:
00151     virtual void sauve(FILE *) const ;      
00152     
00153     // Computational routines
00154     // ----------------------
00155     public:
00172     void hydro_euler_extr(const double& mass, const double& sepa) ;
00173 
00192     void update_metric_extr(const double& mass, const double& sepa) ;
00193 
00210      void update_metric_der_comp_extr(const double& mass,
00211                       const double& sepa) ;
00212 
00227     void kinematics_extr(double omega, const double& mass,
00228                  const double& sepa) ;
00229 
00239     void extrinsic_curv_extr(const double& mass, const double& sepa) ;
00240 
00280     void equil_bhns_extr_ks(double ent_c, const double& mass,
00281                 const double& sepa, int mermax,
00282                 int mermax_poisson, 
00283                 double relax_poisson, int mermax_potvit, 
00284                 double relax_potvit, int np_filter,
00285                 double thres_adapt, Tbl& diff) ;
00286 
00326     void equil_bhns_extr_cf(double ent_c, const double& mass,
00327                 const double& sepa, int mermax,
00328                 int mermax_poisson, 
00329                 double relax_poisson, int mermax_potvit, 
00330                 double relax_potvit, int np_filter,
00331                 double thres_adapt, Tbl& diff) ;
00332 
00380     void equil_bhns_extr_ylm_ks(double ent_c, const double& mass,
00381                     const double& sepa, double* nu_int,
00382                     double* beta_int, double* shift_int,
00383                     int mermax, int mermax_poisson, 
00384                     double relax_poisson, double relax_ylm,
00385                     int mermax_potvit, double relax_potvit,
00386                     int np_filter,
00387                     double thres_adapt, Tbl& diff) ;
00388 
00436     void equil_bhns_extr_ylm_cf(double ent_c, const double& mass,
00437                     const double& sepa, double* nu_int,
00438                     double* beta_int, double* shift_int,
00439                     int mermax, int mermax_poisson, 
00440                     double relax_poisson, double relax_ylm,
00441                     int mermax_potvit, double relax_potvit,
00442                     int np_filter,
00443                     double thres_adapt, Tbl& diff) ;
00444 
00473     void test_bhns_extr(const double& mass,
00474                 const double& sepa, int mermax_poisson,
00475                 double relax_poisson, int mermax_potvit,
00476                 double relax_potvit, Tbl& diff) ;
00477 
00495     double velocity_pot_extr(const double& mass, const double& sepa,
00496                  int mermax, double precis, double relax) ;
00497 
00502     void ent_max_search(double& xx, double& yy) const ;
00503 
00509     double phi_longest_rad(double x_max, double y_max) const ;
00510 
00512     void get_ylm(int nylm, Cmp** ylmvec) const ;
00513 
00515     void get_integrals(int nylm, double* intvec, Cmp** ylmvec,
00516                Cmp source) const ;
00517 
00518     friend class Bin_bhns_extr ;
00519 
00520 };
00521 
00522 #endif

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