isol_hole.h
/*
* Definition of Lorene class Isol_hole
*
*/
/*
* Copyright (c) 2009 Nicolas Vasset
*/
#ifndef __ISOLHOLE_H_
#define __ISOLHOLE_H_
// Headers Lorene
#include "tensor.h"
#include "metric.h"
#include "spheroid.h"
#include "excision_surf.h"
#include "excision_hor.h"
class Eos ;
//---------------------------//
// Class Isol_hole //
//---------------------------//
namespace Lorene {
class Isol_hole {
// Data :
// -----
protected:
const Map& mp ;
double Omega ;
bool NorKappa ;
Scalar boundNoK ;
bool isCF ;
// Metric data
// -----------------
Scalar lapse ;
// Conformal factor
Scalar conf_fact;
Vector shift ;
Sym_tensor hij ;
Sym_tensor hatA ;
// Derived data :
// ------------
protected:
mutable Spheroid* p_hor ;
mutable double* p_adm_mass ;
mutable double* p_komar_angmom ;
mutable double* p_virial_residue ;
// Constructors - Destructor
// -------------------------
public:
Isol_hole(const Map& mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i = false) ;
Isol_hole(const Isol_hole& ) ;
Isol_hole(const Map& mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i, FILE* fich) ;
virtual ~Isol_hole() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const ;
virtual void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Isol_hole&) ;
void compute_stat_metric(double precis, double relax, int mer_max, int mer_max2, bool isvoid = true) ;
void secmembre_kerr(Sym_tensor& source_hh);
// Accessors
// ---------
public:
const Map& get_mp() const {return mp; } ;
double get_Omega() const {return Omega ;} ;
const Scalar& get_boundN() const{
if (NorKappa == false){
return boundNoK;
}
else cout << "The boundary condition is imposed on the surface gravity!" << endl;
}
const Scalar& get_Kappa() const{
if(NorKappa == true){
return boundNoK;
}
else cout << "The boundary condition is imposed on the lapse!" <<endl;
}
const Scalar& get_lapse() const {return lapse;} ;
const Scalar& get_conf_fact() const {return conf_fact;};
const Vector& get_shift() const {return shift;} ;
const Sym_tensor& get_hij() const {return hij;} ;
const Sym_tensor& get_hatA() const {return hatA;} ;
// Outputs
// -------
public:
virtual void sauve(FILE* ) const ;
void Einstein_errors();
// Global quantities
// -----------------
public:
Spheroid hor() ;
double adm_mass() ;
double komar_angmom() ;
double virial_residue() ;
};
}
#endif
Lorene::Isol_hole::hor
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
Definition isol_hole.C:247
Lorene::Isol_hole::p_adm_mass
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
Definition isol_hole.h:103
Lorene::Isol_hole::p_komar_angmom
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
Definition isol_hole.h:108
Lorene::Isol_hole::get_Omega
double get_Omega() const
Returns the rotation rate.
Definition isol_hole.h:199
Lorene::Isol_hole::get_mp
const Map & get_mp() const
Returns the mapping.
Definition isol_hole.h:196
Lorene::Isol_hole::~Isol_hole
virtual ~Isol_hole()
Destructor.
Definition isol_hole.C:125
Lorene::Isol_hole::Einstein_errors
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
Definition isol_hole.C:194
Lorene::Isol_hole::boundNoK
Scalar boundNoK
Indicates if the boundary value for the lapse or the surface gravity is used.
Definition isol_hole.h:65
Lorene::Isol_hole::del_deriv
virtual void del_deriv() const
Deletes all the derived quantities.
Definition isol_hole.C:136
Lorene::Isol_hole::get_hatA
const Sym_tensor & get_hatA() const
Returns the rescaled tracefree extrinsic curvature .
Definition isol_hole.h:231
Lorene::Isol_hole::lapse
Scalar lapse
Lapse function.
Definition isol_hole.h:76
Lorene::Isol_hole::NorKappa
bool NorKappa
Rotation rate of the horizon in the azimuthal direction.
Definition isol_hole.h:61
Lorene::Isol_hole::hij
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
Definition isol_hole.h:87
Lorene::Isol_hole::get_hij
const Sym_tensor & get_hij() const
Returns the deviation tensor .
Definition isol_hole.h:228
Lorene::Isol_hole::p_virial_residue
double * p_virial_residue
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Definition isol_hole.h:113
Lorene::Isol_hole::operator=
void operator=(const Isol_hole &)
Assignment to another Isol_hole.
Definition isol_hole.C:160
Lorene::Isol_hole::get_boundN
const Scalar & get_boundN() const
Returns the boundary value used for the lapse (if it is the one used).
Definition isol_hole.h:202
Lorene::Isol_hole::secmembre_kerr
void secmembre_kerr(Sym_tensor &source_hh)
Computes the rhs of hyperbolic equation for conformal metric assuming statioarity; WARNING; up to now...
Definition Isol_hole/secmembre_hij_stat.C:18
Lorene::Isol_hole::shift
Vector shift
Shift vector.
Definition isol_hole.h:82
Lorene::Isol_hole::sauve
virtual void sauve(FILE *) const
Save in a file.
Definition isol_hole.C:183
Lorene::Isol_hole::hatA
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: see Cordero et al.
Definition isol_hole.h:92
Lorene::Isol_hole::mp
const Map & mp
Mapping associated with the star.
Definition isol_hole.h:55
Lorene::Isol_hole::set_der_0x0
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition isol_hole.C:145
Lorene::Isol_hole::get_lapse
const Scalar & get_lapse() const
Returns the lapse function N.
Definition isol_hole.h:219
Lorene::Isol_hole::isCF
bool isCF
Stores the boundary value of the lapse or surface gravity.
Definition isol_hole.h:69
Lorene::Isol_hole::get_conf_fact
const Scalar & get_conf_fact() const
Returns the conformal factor.
Definition isol_hole.h:222
Lorene::Isol_hole::adm_mass
double adm_mass()
Computation of the ADM mass of the BH spacetime.
Definition isol_hole.C:289
Lorene::Isol_hole::p_hor
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
Definition isol_hole.h:101
Lorene::Isol_hole::Isol_hole
Isol_hole(const Map &mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i=false)
Standard constructor.
Definition isol_hole.C:51
Lorene::Isol_hole::compute_stat_metric
void compute_stat_metric(double precis, double relax, int mer_max, int mer_max2, bool isvoid=true)
Computes a quasi-stationary 3-slice from the chosen parameters.
Definition Isol_hole/isol_hole_compute_metric.C:50
Lorene::Isol_hole::komar_angmom
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
Definition isol_hole.C:309
Lorene::Isol_hole::get_shift
const Vector & get_shift() const
Returns the shift vector .
Definition isol_hole.h:225
Lorene::Isol_hole::get_Kappa
const Scalar & get_Kappa() const
Returns the surface gravity value at the boundary (if it is the one used).
Definition isol_hole.h:210
Lorene::Isol_hole::virial_residue
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Definition isol_hole.C:334
Lorene::Scalar
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:387
Lorene::Spheroid
Spheroidal 2-surfaces embedded in a time-slice of the 3+1 formalism.
Definition spheroid.h:84
Lorene::Sym_tensor
Class intended to describe valence-2 symmetric tensors.
Definition sym_tensor.h:223
Lorene::Vector
Tensor field of valence 1.
Definition vector.h:188
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::Map
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Definition map.C:139