bin_ns_bh.h
/*
* Definition of Lorene class Bin_ns_bh
*
*/
/*
* Copyright (c) 2002 Philippe Grandclement, Keisuke Taniguchi,
* Eric Gourgoulhon
*
* This file is part of LORENE.
*
* LORENE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* LORENE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LORENE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __BIN_NS_BH_H_
#define __BIN_NS_BH_H_
/*
* $Id: bin_ns_bh.h,v 1.19 2014/10/13 08:52:32 j_novak Exp $
* $Log: bin_ns_bh.h,v $
* Revision 1.19 2014/10/13 08:52:32 j_novak
* Lorene classes and functions now belong to the namespace Lorene.
*
* Revision 1.18 2007/04/26 14:14:59 f_limousin
* The function fait_tkij now have default values for bound_nn and lim_nn
*
* Revision 1.17 2007/04/24 20:15:30 f_limousin
* Implementation of Dirichlet and Neumann BC for the lapse
*
* Revision 1.16 2006/09/25 10:01:45 p_grandclement
* Addition of N-dimensional Tbl
*
* Revision 1.15 2006/06/23 07:09:22 p_grandclement
* Addition of spinning black hole
*
* Revision 1.14 2006/06/01 12:47:50 p_grandclement
* update of the Bin_ns_bh project
*
* Revision 1.13 2006/04/25 07:21:54 p_grandclement
* Various changes for the NS_BH project
*
* Revision 1.12 2005/12/01 12:59:08 p_grandclement
* Files for bin_ns_bh project
*
* Revision 1.11 2005/11/30 11:09:03 p_grandclement
* Changes for the Bin_ns_bh project
*
* Revision 1.10 2005/10/18 13:12:31 p_grandclement
* update of the mixted binary codes
*
* Revision 1.9 2005/08/29 15:10:12 p_grandclement
* Addition of things needed :
* 1) For BBH with different masses
* 2) Provisory files for the mixted binaries (Bh and NS) : THIS IS NOT
* WORKING YET !!!
*
* Revision 1.8 2004/06/09 06:23:50 k_taniguchi
* Introduce analytical_omega() and analytical_shift().
*
* Revision 1.7 2003/11/25 07:25:44 k_taniguchi
* Change the attribute of fait_decouple() from private to public.
*
* Revision 1.6 2003/10/24 16:56:30 k_taniguchi
* Add the method for the calculation of the orbital angular velocity
*
* Revision 1.5 2003/10/24 12:45:22 k_taniguchi
* Change the class for the star from Etoile_bin to Et_bin_nsbh
*
* Revision 1.4 2003/02/13 16:40:24 p_grandclement
* Addition of various things for the Bin_ns_bh project, non of them being
* completely tested
*
* Revision 1.3 2002/12/19 14:46:16 e_gourgoulhon
*
* Modified prototype of functions set_omega and set_x_axe
*
* Revision 1.2 2002/12/18 10:29:18 e_gourgoulhon
*
* Added set_omega() and set_x_axe()
*
* Revision 1.1 2002/12/17 13:10:49 e_gourgoulhon
* Definition of class Bin_ns_bh
*
*
*
*
* $Header: /cvsroot/Lorene/C++/Include/bin_ns_bh.h,v 1.19 2014/10/13 08:52:32 j_novak Exp $
*
*/
// Lorene headers
#include "et_bin_nsbh.h"
#include "bhole.h"
namespace Lorene {
class Bin_ns_bh {
// Data :
// -----
private:
const Base_vect_cart ref_triad ;
Et_bin_nsbh star ;
Bhole hole ;
double omega ;
double x_axe ;
// Derived data :
// ------------
private:
mutable double* p_mass_adm ;
mutable double* p_mass_kom ;
mutable Tbl* p_angu_mom ;
mutable double* p_total_ener ;
mutable double* p_virial ;
mutable double* p_virial_gb ;
mutable double* p_virial_fus ;
mutable double* p_ham_constr ;
mutable Tbl* p_mom_constr ;
// Constructors - Destructor
// -------------------------
public:
Bin_ns_bh(Map& mp_ns, int nzet, const Eos& eos, bool irrot_ns,
Map_af& mp_bh) ;
Bin_ns_bh(const Bin_ns_bh& ) ;
Bin_ns_bh(Map& mp_ns, const Eos& eos, Map_af& mp_bh, FILE* fich, bool old = false) ;
virtual ~Bin_ns_bh() ;
// Memory management
// -----------------
private:
void del_deriv() const ;
void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Bin_ns_bh& ) ;
Et_bin_nsbh& set_ns()
{ del_deriv() ;
return star ;} ;
Bhole& set_bh()
{ del_deriv() ;
return hole ;} ;
void set_omega(double ) ;
void set_x_axe(double ) ;
// Accessors
// ---------
public:
const Et_bin_nsbh& get_ns() const
{ return star ;} ;
const Bhole& get_bh() const
{ return hole ;} ;
double get_omega() const
{ return omega ;} ;
double get_x_axe() const
{ return x_axe ;} ;
double separation() const ;
// Outputs
// -------
public:
virtual void sauve(FILE *) const ;
friend ostream& operator<<(ostream& , const Bin_ns_bh& ) ;
private:
ostream& operator>>(ostream& ) const ;
public:
void fait_decouple() ;
void fait_tkij(int bound_nn = -1, double lim_nn = 0) ;
// Computational routines
// ----------------------
public:
void orbit_omega(double fact_omeg_min, double fact_omeg_max) ;
void analytical_omega() ;
void analytical_shift() ;
void init_auto () ;
void affecte (const Bin_ns_bh&) ;
void pseudo_misner (int&, int, double, double, int, double) ;
double adm_systeme() const ;
double adm_systeme_volume() const ;
double komar_systeme() const ;
double moment_systeme_inf() const ;
double moment_systeme_hor() const ;
double smarr() const ;
Tbl linear_momentum_systeme_inf() const ;
double viriel() const ;
void coal (double, double, int, int, double, double, double, double, double, double, double, const int, int, double) ;
double distance_propre_axe_bh (const int nr = 65) const ;
double distance_propre_axe_ns (const int nr = 65) const ;
};
ostream& operator<<(ostream& , const Bin_ns_bh& ) ;
}
#endif
Lorene::Base_vect_cart
Cartesian vectorial bases (triads).
Definition base_vect.h:201
Lorene::Bhole
Black hole.
Definition bhole.h:268
Lorene::Bin_ns_bh
Neutron star - black hole binary system.
Definition bin_ns_bh.h:117
Lorene::Bin_ns_bh::set_bh
Bhole & set_bh()
Read/write of the black hole.
Definition bin_ns_bh.h:227
Lorene::Bin_ns_bh::get_omega
double get_omega() const
Returns the orbital velocity.
Definition bin_ns_bh.h:249
Lorene::Bin_ns_bh::operator<<
friend ostream & operator<<(ostream &, const Bin_ns_bh &)
Save in a file.
Definition bin_ns_bh.C:475
Lorene::Bin_ns_bh::p_mass_kom
double * p_mass_kom
Total Komar mass of the system.
Definition bin_ns_bh.h:149
Lorene::Bin_ns_bh::fait_decouple
void fait_decouple()
Function used to compute the {\tt decouple} functions for both the NS and the BH.
Definition bin_ns_bh_kij.C:119
Lorene::Bin_ns_bh::get_bh
const Bhole & get_bh() const
Returns a constant reference to the black hole.
Definition bin_ns_bh.h:245
Lorene::Bin_ns_bh::p_virial
double * p_virial
Virial theorem error.
Definition bin_ns_bh.h:158
Lorene::Bin_ns_bh::fait_tkij
void fait_tkij(int bound_nn=-1, double lim_nn=0)
Computation of the extrinsic curvature tensor for both {\tt star} and {\tt bhole}.
Definition bin_ns_bh_kij.C:257
Lorene::Bin_ns_bh::set_ns
Et_bin_nsbh & set_ns()
Read/write of the neutron star.
Definition bin_ns_bh.h:222
Lorene::Bin_ns_bh::set_omega
void set_omega(double)
Sets the orbital angular velocity [{\tt f_unit}].
Definition bin_ns_bh.C:218
Lorene::Bin_ns_bh::p_total_ener
double * p_total_ener
Total energy of the system.
Definition bin_ns_bh.h:155
Lorene::Bin_ns_bh::operator=
void operator=(const Bin_ns_bh &)
Assignment to another Bin_ns_bh.
Definition bin_ns_bh.C:202
Lorene::Bin_ns_bh::operator>>
ostream & operator>>(ostream &) const
Operator >> (function called by the operator <<).
Definition bin_ns_bh.C:481
Lorene::Bin_ns_bh::x_axe
double x_axe
Absolute X coordinate of the rotation axis.
Definition bin_ns_bh.h:140
Lorene::Bin_ns_bh::set_x_axe
void set_x_axe(double)
Sets the absolute coordinate X of the rotation axis [{\tt r_unit}].
Definition bin_ns_bh.C:227
Lorene::Bin_ns_bh::star
Et_bin_nsbh star
The neutron star.
Definition bin_ns_bh.h:128
Lorene::Bin_ns_bh::p_virial_gb
double * p_virial_gb
Virial theorem error by E.Gourgoulhon and S.Bonazzola.
Definition bin_ns_bh.h:161
Lorene::Bin_ns_bh::hole
Bhole hole
The black hole.
Definition bin_ns_bh.h:131
Lorene::Bin_ns_bh::p_mom_constr
Tbl * p_mom_constr
Relative error on the momentum constraint.
Definition bin_ns_bh.h:170
Lorene::Bin_ns_bh::p_mass_adm
double * p_mass_adm
Total ADM mass of the system.
Definition bin_ns_bh.h:146
Lorene::Bin_ns_bh::analytical_omega
void analytical_omega()
Sets the orbital angular velocity of the neutron star to some 2-PN analytical value.
Definition bin_ns_bh_omegaana.C:58
Lorene::Bin_ns_bh::separation
double separation() const
Return the separation.
Definition bin_ns_bh.C:235
Lorene::Bin_ns_bh::p_ham_constr
double * p_ham_constr
Relative error on the Hamiltonian constraint.
Definition bin_ns_bh.h:167
Lorene::Bin_ns_bh::ref_triad
const Base_vect_cart ref_triad
Cartesian triad of the absolute reference frame.
Definition bin_ns_bh.h:125
Lorene::Bin_ns_bh::set_der_0x0
void set_der_0x0() const
Sets to {\tt 0x0} all the pointers on derived quantities.
Definition bin_ns_bh.C:181
Lorene::Bin_ns_bh::del_deriv
void del_deriv() const
Destructor.
Definition bin_ns_bh.C:163
Lorene::Bin_ns_bh::p_virial_fus
double * p_virial_fus
Virial theorem error by J.L.Friedman, K.Uryu, and M.Shibata.
Definition bin_ns_bh.h:164
Lorene::Bin_ns_bh::p_angu_mom
Tbl * p_angu_mom
Total angular momentum of the system.
Definition bin_ns_bh.h:152
Lorene::Bin_ns_bh::get_ns
const Et_bin_nsbh & get_ns() const
Returns a constant reference to the neutron star.
Definition bin_ns_bh.h:241
Lorene::Bin_ns_bh::Bin_ns_bh
Bin_ns_bh(Map &mp_ns, int nzet, const Eos &eos, bool irrot_ns, Map_af &mp_bh)
Standard constructor.
Definition bin_ns_bh.C:107
Lorene::Bin_ns_bh::analytical_shift
void analytical_shift()
Sets some analytical template for the shift vector (via the members {\tt w_shift} and {\tt khi_shift}...
Definition bin_ns_bh_anashift.C:59
Lorene::Bin_ns_bh::omega
double omega
Angular velocity with respect to an asymptotically inertial observer.
Definition bin_ns_bh.h:136
Lorene::Bin_ns_bh::get_x_axe
double get_x_axe() const
Returns a constant reference to the black hole.
Definition bin_ns_bh.h:253
Lorene::Bin_ns_bh::orbit_omega
void orbit_omega(double fact_omeg_min, double fact_omeg_max)
Computes the orbital angular velocity {\tt omega}.
Definition bin_ns_bh_orbit.C:75
Lorene::Eos
Equation of state base class.
Definition eos.h:190
Lorene::Et_bin_nsbh
Class for a star in a NS-BH binary system.
Definition et_bin_nsbh.h:79
Lorene::Map_af
Affine radial mapping.
Definition map.h:2027
Lorene::Tbl
Basic array class.
Definition tbl.h:161
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::sauve
virtual void sauve(FILE *) const
Save in a file.
Lorene::Map
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Definition map.C:139