LORENE
et_bin_bhns_extr.h
1 /*
2  * Definition of Lorene class Et_bin_bhns_extr
3  *
4  */
5 
6 /*
7  * Copyright (c) 2004-2005 Keisuke Taniguchi
8  *
9  * This file is part of LORENE.
10  *
11  * LORENE is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License version 2
13  * as published by the Free Software Foundation.
14  *
15  * LORENE is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with LORENE; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  */
25 
26 #ifndef __ET_BIN_BHNS_EXTR_H_
27 #define __ET_BIN_BHNS_EXTR_H_
28 
29 /*
30  * $Id: et_bin_bhns_extr.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
31  * $Log: et_bin_bhns_extr.h,v $
32  * Revision 1.5 2014/10/13 08:52:34 j_novak
33  * Lorene classes and functions now belong to the namespace Lorene.
34  *
35  * Revision 1.4 2005/02/28 23:04:56 k_taniguchi
36  * Addition of two indicators for the backfround metric and the boundary
37  * condition, and some codes for the conformally flat case
38  *
39  * Revision 1.3 2005/01/31 20:25:22 k_taniguchi
40  * Change the argument of equil_bhns_extr_ylm.
41  *
42  * Revision 1.2 2004/12/29 16:26:02 k_taniguchi
43  * Addition of a comutational method to calculate equilibrium figures
44  * with a multipole falloff condition at the outer boundary.
45  *
46  * Revision 1.1 2004/11/30 20:36:31 k_taniguchi
47  * *** empty log message ***
48  *
49  *
50  * $Header: /cvsroot/Lorene/C++/Include/et_bin_bhns_extr.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
51  *
52  */
53 
54 // Lorene headers
55 #include "etoile.h"
56 
57 namespace Lorene {
68 class Et_bin_bhns_extr : public Etoile_bin {
69 
70  // Data
71  // ----
72  protected:
73 
78  bool kerrschild ;
79 
84  bool multipole ;
85 
86  // Constructors - Destructor
87  // -------------------------
88  public:
108  Et_bin_bhns_extr(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
109  bool irrot, const Base_vect& ref_triad_i,
110  bool kerrs, bool multi) ;
111 
113 
126  Et_bin_bhns_extr(Map& mp_i, const Eos& eos_i,
127  const Base_vect& ref_triad_i, FILE* fich) ;
128 
129  virtual ~Et_bin_bhns_extr() ;
130 
131 
132  // Mutators / assignment
133  // ---------------------
134  public:
136  void operator=(const Et_bin_bhns_extr&) ;
137 
138  // Accessors
139  // ---------
140  public:
141 
145  bool in_kerrschild() const {return kerrschild ;} ;
146 
150  bool with_multipole() const {return multipole ;} ;
151 
152  // Outputs
153  // -------
154  public:
155  virtual void sauve(FILE *) const ;
156 
157  // Computational routines
158  // ----------------------
159  public:
176  void hydro_euler_extr(const double& mass, const double& sepa) ;
177 
196  void update_metric_extr(const double& mass, const double& sepa) ;
197 
214  void update_metric_der_comp_extr(const double& mass,
215  const double& sepa) ;
216 
231  void kinematics_extr(double omega, const double& mass,
232  const double& sepa) ;
233 
243  void extrinsic_curv_extr(const double& mass, const double& sepa) ;
244 
284  void equil_bhns_extr_ks(double ent_c, const double& mass,
285  const double& sepa, int mermax,
286  int mermax_poisson,
287  double relax_poisson, int mermax_potvit,
288  double relax_potvit, int np_filter,
289  double thres_adapt, Tbl& diff) ;
290 
330  void equil_bhns_extr_cf(double ent_c, const double& mass,
331  const double& sepa, int mermax,
332  int mermax_poisson,
333  double relax_poisson, int mermax_potvit,
334  double relax_potvit, int np_filter,
335  double thres_adapt, Tbl& diff) ;
336 
384  void equil_bhns_extr_ylm_ks(double ent_c, const double& mass,
385  const double& sepa, double* nu_int,
386  double* beta_int, double* shift_int,
387  int mermax, int mermax_poisson,
388  double relax_poisson, double relax_ylm,
389  int mermax_potvit, double relax_potvit,
390  int np_filter,
391  double thres_adapt, Tbl& diff) ;
392 
440  void equil_bhns_extr_ylm_cf(double ent_c, const double& mass,
441  const double& sepa, double* nu_int,
442  double* beta_int, double* shift_int,
443  int mermax, int mermax_poisson,
444  double relax_poisson, double relax_ylm,
445  int mermax_potvit, double relax_potvit,
446  int np_filter,
447  double thres_adapt, Tbl& diff) ;
448 
477  void test_bhns_extr(const double& mass,
478  const double& sepa, int mermax_poisson,
479  double relax_poisson, int mermax_potvit,
480  double relax_potvit, Tbl& diff) ;
481 
499  double velocity_pot_extr(const double& mass, const double& sepa,
500  int mermax, double precis, double relax) ;
501 
506  void ent_max_search(double& xx, double& yy) const ;
507 
513  double phi_longest_rad(double x_max, double y_max) const ;
514 
516  void get_ylm(int nylm, Cmp** ylmvec) const ;
517 
519  void get_integrals(int nylm, double* intvec, Cmp** ylmvec,
520  Cmp source) const ;
521 
522  friend class Bin_bhns_extr ;
523 
524 };
525 
526 }
527 #endif
bool with_multipole() const
Returns true for the multipole falloff boundary condition, false for the one.
double phi_longest_rad(double x_max, double y_max) const
Searches the position (phi) of the longest radius of NS from the position of the maximum enthalpy...
Component of a tensorial field *** DEPRECATED : use class Scalar instead ***.
Definition: cmp.h:446
void equil_bhns_extr_cf(double ent_c, const double &mass, const double &sepa, int mermax, int mermax_poisson, double relax_poisson, int mermax_potvit, double relax_potvit, int np_filter, double thres_adapt, Tbl &diff)
Computes an equilibrium configuration of a BH-NS binary system in the conformally flat background met...
void test_bhns_extr(const double &mass, const double &sepa, int mermax_poisson, double relax_poisson, int mermax_potvit, double relax_potvit, Tbl &diff)
Tests the resolution of the Poisson equations when the NS has no matter source.
Lorene prototypes.
Definition: app_hor.h:67
Equation of state base class.
Definition: eos.h:209
Et_bin_bhns_extr(Map &mp_i, int nzet_i, bool relat, const Eos &eos_i, bool irrot, const Base_vect &ref_triad_i, bool kerrs, bool multi)
Standard constructor.
void get_integrals(int nylm, double *intvec, Cmp **ylmvec, Cmp source) const
Computes multipole moments.
void kinematics_extr(double omega, const double &mass, const double &sepa)
Computes the quantities bsn and pot_centri in the Kerr-Schild background metric or in the conformally...
void update_metric_extr(const double &mass, const double &sepa)
Computes metric coefficients from known potentials, when the companion is a black hole with the Kerr-...
Base class for coordinate mappings.
Definition: map.h:682
Class for stars in binary system.
Definition: etoile.h:817
bool kerrschild
Indicator of the background metric: true for the Kerr-Shild metric, false for the conformally flat on...
void equil_bhns_extr_ylm_cf(double ent_c, const double &mass, const double &sepa, double *nu_int, double *beta_int, double *shift_int, int mermax, int mermax_poisson, double relax_poisson, double relax_ylm, int mermax_potvit, double relax_potvit, int np_filter, double thres_adapt, Tbl &diff)
Computes an equilibrium configuration of a BH-NS binary system in the conformally flat background met...
void equil_bhns_extr_ylm_ks(double ent_c, const double &mass, const double &sepa, double *nu_int, double *beta_int, double *shift_int, int mermax, int mermax_poisson, double relax_poisson, double relax_ylm, int mermax_potvit, double relax_potvit, int np_filter, double thres_adapt, Tbl &diff)
Computes an equilibrium configuration of a BH-NS binary system in the Kerr-Schild background metric u...
Vectorial bases (triads) with respect to which the tensorial components are defined.
Definition: base_vect.h:105
void hydro_euler_extr(const double &mass, const double &sepa)
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
virtual ~Et_bin_bhns_extr()
Destructor.
virtual void sauve(FILE *) const
Save in a file.
void ent_max_search(double &xx, double &yy) const
Searches the position of the maximum enthalpy.
bool in_kerrschild() const
Returns true for the Kerr-Schild background metric, false for the conformally flat one...
void get_ylm(int nylm, Cmp **ylmvec) const
Constructs spherical harmonics.
double velocity_pot_extr(const double &mass, const double &sepa, int mermax, double precis, double relax)
Computes the non-translational part of the velocity scalar potential by solving the continuity equat...
Class for a neutron star in black hole - neutron star binary systems.
void update_metric_der_comp_extr(const double &mass, const double &sepa)
Computes the derivative of metric functions related to the companion black hole with the Kerr-Schild ...
void equil_bhns_extr_ks(double ent_c, const double &mass, const double &sepa, int mermax, int mermax_poisson, double relax_poisson, int mermax_potvit, double relax_potvit, int np_filter, double thres_adapt, Tbl &diff)
Computes an equilibrium configuration of a BH-NS binary system in the Kerr-Schild background metric u...
bool multipole
Indicator of the boundary condition: true for the multipole falloff condition, false for the one...
void extrinsic_curv_extr(const double &mass, const double &sepa)
Computes tkij_auto and akcar_auto from shift_auto , nnn and a_car .
Basic array class.
Definition: tbl.h:164
void operator=(const Et_bin_bhns_extr &)
Assignment to another Et_bin_bhns_extr.
Class for computing a Black hole - Neutron star binary system with an extreme mass ratio...
Definition: bin_bhns_extr.h:57