excised_slice.h
/*
* Definition of Lorene class Excised slice
*
*/
/*
* Copyright (c) 2010 Nicolas Vasset
*/
#ifndef __EXCISEDSLICE_H_
#define __EXCISEDSLICE_H_
// Headers Lorene
#include "spheroid.h"
//---------------------------//
// Class Excised_slice //
//---------------------------//
namespace Lorene {
class Excised_slice {
// Data :
// -----
protected:
const Map& mp ;
// Metric data
// -----------------
int type_hor;
int field_set;
Scalar lapse ;
// Conformal factor
Scalar conf_fact;
Vector shift ;
Sym_tensor hij ;
Sym_tensor hatA ;
Vector Xx ;
// 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:
Excised_slice(const Map& mp_i, int hor_type, int scheme_type) ;
Excised_slice(const Excised_slice& ) ;
Excised_slice(const Map& mp_i, int hor_type, int scheme_type, FILE* fich) ;
virtual ~Excised_slice() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const ;
virtual void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Excised_slice&) ;
void compute_stat_metric(double precis, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i=true, double relax=0.2, int mer_max = 2000, int mer_max2=200, bool isvoid = true) ;
void secmembre_kerr(Sym_tensor& source_hh);
// Accessors
// ---------
public:
const Map& get_mp() const {return mp; } ;
int get_type_hor() const {return type_hor; };
int get_field_set() const {return field_set;};
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;} ;
const Vector& get_Xx() const {
if (field_set==2) return Xx;
else if (field_set==1) cout <<"Error: the scheme used is the original FCF; this variable is irrelevant" << endl;
else cout <<"error in the scheme definition; please check the class consistency" << endl;}
int set_type_hor() {del_deriv() ; return type_hor ; } ;
Scalar& set_lapse() {del_deriv() ; return lapse ; } ;
Scalar& set_conf_fact() {del_deriv() ; return conf_fact ; } ;
Vector& set_shift() {del_deriv() ; return shift ; } ;
Sym_tensor& set_hij() {del_deriv() ; return hij ; } ;
Sym_tensor& set_hatA() {del_deriv() ; return hatA ; } ;
Vector& set_Xx() {del_deriv() ; return Xx ; } ; // Include an assert here!!!!
// 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::Excised_slice::set_conf_fact
Scalar & set_conf_fact()
Sets the conformal factor.
Definition excised_slice.h:234
Lorene::Excised_slice::get_conf_fact
const Scalar & get_conf_fact() const
Returns the conformal factor.
Definition excised_slice.h:210
Lorene::Excised_slice::hatA
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: rescaled same way as Cordero et al.
Definition excised_slice.h:74
Lorene::Excised_slice::p_adm_mass
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
Definition excised_slice.h:91
Lorene::Excised_slice::komar_angmom
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
Definition excised_slice.C:308
Lorene::Excised_slice::compute_stat_metric
void compute_stat_metric(double precis, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i=true, double relax=0.2, int mer_max=2000, int mer_max2=200, bool isvoid=true)
If hor_type=1, computes a quasi-stationary 3-slice from the chosen parameters.
Definition Excised_slice/isol_hole_compute_metric.C:38
Lorene::Excised_slice::type_hor
int type_hor
Chosen horizon type.
Definition excised_slice.h:52
Lorene::Excised_slice::Einstein_errors
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
Definition excised_slice.C:193
Lorene::Excised_slice::p_komar_angmom
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
Definition excised_slice.h:96
Lorene::Excised_slice::del_deriv
virtual void del_deriv() const
Deletes all the derived quantities.
Definition excised_slice.C:135
Lorene::Excised_slice::set_hij
Sym_tensor & set_hij()
Sets the deviation tensor.
Definition excised_slice.h:240
Lorene::Excised_slice::set_Xx
Vector & set_Xx()
Sets the longitudinal part of Einstein Equations if the scheme is apropriate.
Definition excised_slice.h:246
Lorene::Excised_slice::p_hor
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
Definition excised_slice.h:89
Lorene::Excised_slice::get_lapse
const Scalar & get_lapse() const
Returns the lapse function N.
Definition excised_slice.h:207
Lorene::Excised_slice::set_lapse
Scalar & set_lapse()
Sets the lapse.
Definition excised_slice.h:231
Lorene::Excised_slice::get_shift
const Vector & get_shift() const
Returns the shift vector .
Definition excised_slice.h:213
Lorene::Excised_slice::virial_residue
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Definition excised_slice.C:333
Lorene::Excised_slice::secmembre_kerr
void secmembre_kerr(Sym_tensor &source_hh)
If hor_type=1, computes the rhs of hyperbolic equation for conformal metric assuming stationarity; WA...
Definition Excised_slice/secmembre_hij_stat.C:12
Lorene::Excised_slice::get_hatA
const Sym_tensor & get_hatA() const
Returns the rescaled tracefree extrinsic curvature (or its TT part if scheme_type=2).
Definition excised_slice.h:219
Lorene::Excised_slice::get_field_set
int get_field_set() const
Returns the field set chosen for the data.
Definition excised_slice.h:204
Lorene::Excised_slice::hij
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
Definition excised_slice.h:69
Lorene::Excised_slice::get_mp
const Map & get_mp() const
Returns the mapping.
Definition excised_slice.h:197
Lorene::Excised_slice::set_der_0x0
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition excised_slice.C:144
Lorene::Excised_slice::set_type_hor
int set_type_hor()
Sets the horizon type.
Definition excised_slice.h:228
Lorene::Excised_slice::set_hatA
Sym_tensor & set_hatA()
Sets the rescaled tracefree extrinsic curvature (or its TT part if scheme_type=2).
Definition excised_slice.h:243
Lorene::Excised_slice::lapse
Scalar lapse
Lapse function.
Definition excised_slice.h:58
Lorene::Excised_slice::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 excised_slice.h:101
Lorene::Excised_slice::get_hij
const Sym_tensor & get_hij() const
Returns the deviation tensor .
Definition excised_slice.h:216
Lorene::Excised_slice::get_Xx
const Vector & get_Xx() const
Return the longitudinal part of Einstein Equations if the scheme is appropriate.
Definition excised_slice.h:222
Lorene::Excised_slice::operator=
void operator=(const Excised_slice &)
Assignment to another Excised_slice.
Definition excised_slice.C:159
Lorene::Excised_slice::set_shift
Vector & set_shift()
Sets the shift vector.
Definition excised_slice.h:237
Lorene::Excised_slice::~Excised_slice
virtual ~Excised_slice()
Destructor.
Definition excised_slice.C:124
Lorene::Excised_slice::mp
const Map & mp
Mapping associated with the slice.
Definition excised_slice.h:46
Lorene::Excised_slice::get_type_hor
int get_type_hor() const
Returns the type of horizon that performs the excision.
Definition excised_slice.h:200
Lorene::Excised_slice::field_set
int field_set
Chose field set type.
Definition excised_slice.h:55
Lorene::Excised_slice::shift
Vector shift
Shift vector.
Definition excised_slice.h:64
Lorene::Excised_slice::sauve
virtual void sauve(FILE *) const
Save in a file.
Definition excised_slice.C:181
Lorene::Excised_slice::Excised_slice
Excised_slice(const Map &mp_i, int hor_type, int scheme_type)
Standard constructor.
Definition excised_slice.C:58
Lorene::Excised_slice::adm_mass
double adm_mass()
Computation of the ADM mass of the BH spacetime.
Definition excised_slice.C:288
Lorene::Excised_slice::Xx
Vector Xx
Longitudinal part of the extrinsic curvature.
Definition excised_slice.h:79
Lorene::Excised_slice::hor
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
Definition excised_slice.C:246
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