00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __ET_BIN_BHNS_EXTR_H_
00027 #define __ET_BIN_BHNS_EXTR_H_
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 #include "etoile.h"
00053
00064 class Et_bin_bhns_extr : public Etoile_bin {
00065
00066
00067
00068 protected:
00069
00074 bool kerrschild ;
00075
00080 bool multipole ;
00081
00082
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
00129
00130 public:
00132 void operator=(const Et_bin_bhns_extr&) ;
00133
00134
00135
00136 public:
00137
00141 bool in_kerrschild() const {return kerrschild ;} ;
00142
00146 bool with_multipole() const {return multipole ;} ;
00147
00148
00149
00150 public:
00151 virtual void sauve(FILE *) const ;
00152
00153
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