excision_hor.h
/*
* Definition of Lorene class Excision_hor, friend class of Spheroid.
*
*/
/*
* Copyright (c) 2009 Jose-Luis Jaramillo & Nicolas Vasset
*
* 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 __EXCISIONHOR_H_
#define __EXCISIONHOR_H_
/*
* $Header: /cvsroot/Lorene/C++/Include/excision_hor.h,v 1.3 2014/10/13 08:52:34 j_novak Exp $
*
*/
#include "metric.h"
#include "spheroid.h"
namespace Lorene {
class Excision_hor {
// Data :
// -----
protected:
Spheroid sph ;
Scalar conf_fact ;
Scalar lapse ;
Vector shift ;
Metric gamij ;
Sym_tensor Kij ;
double delta_t;
double no_of_steps;
Sym_tensor Tij;
// Derived data :
// ------------
protected:
mutable Scalar* p_get_BC_conf_fact ;
mutable Scalar* p_get_BC_bmN ;
mutable Scalar* p_get_BC_bpN ;
mutable Vector* p_get_BC_shift ;
// Constructors - Destructor
// -------------------------
public:
Excision_hor(const Scalar& h_in, const Metric& gij, const Sym_tensor& Kij2, const Scalar& ppsi, const Scalar& nn, const Vector& beta,const Sym_tensor& Tij2, double timestep, int int_nos = 1) ;
Excision_hor(const Excision_hor& ) ;
Excision_hor(FILE* ) ;
virtual ~Excision_hor() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const ;
void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Excision_hor&) ;
// Accessors
// ---------
public:
const Spheroid& get_sph() const {return sph; };
const Scalar& get_conf_fact() const {return conf_fact; } ;
const Scalar& get_lapse() const {return lapse ; } ;
const Vector& get_shift() const {return shift ; } ;
const Metric& get_gamij() const {return gamij ; } ;
const Sym_tensor& get_Kij() const {return Kij ; } ;
double get_delta_t() const {return delta_t ;};
double get_no_of_steps() const {return no_of_steps ;};
const Sym_tensor& get_Tij() const{return Tij; } ;
Scalar& set_conf_fact() {del_deriv() ; return conf_fact ; } ;
Scalar& set_lapse() {del_deriv() ; return lapse ; } ;
Vector& set_shift() {del_deriv() ; return shift ; } ;
Metric& set_gamij() {del_deriv() ; return gamij ; } ;
Sym_tensor& set_Kij() {del_deriv() ; return Kij ; } ;
Sym_tensor& set_Tij() {del_deriv() ; return Tij; } ;
double& set_delta_t() {del_deriv() ; return delta_t ; } ;
double& set_no_of_steps() {del_deriv() ; return no_of_steps ; } ;
// Computational functions
// -----------------------
public:
const Scalar& get_BC_conf_fact() const ;
const Scalar& get_BC_bmN(int choice_bmN, double value = 1.) const ;
const Scalar& get_BC_bpN(int choice_bpN, double c_bpn_lap = 1., double c_bpn_fin = 1., Scalar *bpN_fin = 0x0) const ;
const Vector& get_BC_shift(double c_V_lap) const ;
// Outputs
// -------
public:
virtual void sauve(FILE *) const ;
friend ostream& operator<<(ostream& , const Spheroid& ) ;
};
ostream& operator<<(ostream& , const Spheroid& ) ;
}
#endif
Lorene::Excision_hor::get_BC_shift
const Vector & get_BC_shift(double c_V_lap) const
Source of Dirichlet BC for the shift, issued from BC on bpN and a gauge condition on the tangential s...
Definition excision_hor.C:421
Lorene::Excision_hor::shift
Vector shift
The Shift 3-vector on the slice.
Definition excision_hor.h:59
Lorene::Excision_hor::Excision_hor
Excision_hor(const Scalar &h_in, const Metric &gij, const Sym_tensor &Kij2, const Scalar &ppsi, const Scalar &nn, const Vector &beta, const Sym_tensor &Tij2, double timestep, int int_nos=1)
Constructor of an excision surface embedded in a 3-slice (Time_slice ) of 3+1 formalism.
Definition excision_hor.C:46
Lorene::Excision_hor::get_no_of_steps
double get_no_of_steps() const
Returns the internal number of timesteps for one iteration.
Definition excision_hor.h:153
Lorene::Excision_hor::set_lapse
Scalar & set_lapse()
Sets the lapse function.
Definition excision_hor.h:162
Lorene::Excision_hor::Tij
Sym_tensor Tij
Value of the impulsion-energy tensor on the spheroid.
Definition excision_hor.h:74
Lorene::Excision_hor::set_Tij
Sym_tensor & set_Tij()
Sets the value of the impulsion-energy tensor.
Definition excision_hor.h:174
Lorene::Excision_hor::get_Tij
const Sym_tensor & get_Tij() const
Returns the value of the impulsion-energy tensor.
Definition excision_hor.h:156
Lorene::Excision_hor::p_get_BC_conf_fact
Scalar * p_get_BC_conf_fact
Source of Neumann BC on , derived from the vanishing expansion.
Definition excision_hor.h:80
Lorene::Excision_hor::Excision_hor
Excision_hor(FILE *)
Constructor from a file (see sauve(FILE*) ).
Lorene::Excision_hor::no_of_steps
double no_of_steps
The internal number of timesteps for one iteration.
Definition excision_hor.h:71
Lorene::Excision_hor::p_get_BC_shift
Vector * p_get_BC_shift
Source of Dirichlet BC for the shift, issued from BC on bpN and a gauge condition on the tangential s...
Definition excision_hor.h:83
Lorene::Excision_hor::p_get_BC_bpN
Scalar * p_get_BC_bpN
Arbitrary source of Dirichlet BC for (b+N), case 0: based on a parabolic driver towards a constant va...
Definition excision_hor.h:82
Lorene::Excision_hor::set_gamij
Metric & set_gamij()
Sets the 3d metric of the TimeSlice.
Definition excision_hor.h:168
Lorene::Excision_hor::set_conf_fact
Scalar & set_conf_fact()
Sets the value of the conformal factor.
Definition excision_hor.h:159
Lorene::Excision_hor::gamij
Metric gamij
The 3-d metric on the slice.
Definition excision_hor.h:62
Lorene::Excision_hor::operator<<
friend ostream & operator<<(ostream &, const Spheroid &)
Display.
Lorene::Excision_hor::Kij
Sym_tensor Kij
The 3-d extrinsic curvature on the slice.
Definition excision_hor.h:65
Lorene::Excision_hor::~Excision_hor
virtual ~Excision_hor()
Destructor.
Definition excision_hor.C:86
Lorene::Excision_hor::get_Kij
const Sym_tensor & get_Kij() const
returns the 3-d extrinsic curvature
Definition excision_hor.h:147
Lorene::Excision_hor::operator=
void operator=(const Excision_hor &)
Assignment to another Excision_hor.
Lorene::Excision_hor::get_BC_bpN
const Scalar & get_BC_bpN(int choice_bpN, double c_bpn_lap=1., double c_bpn_fin=1., Scalar *bpN_fin=0x0) const
Case 0: Arbitrary source of Dirichlet BC for (b+N), based on a parabolic driver towards a constant va...
Definition excision_hor.C:298
Lorene::Excision_hor::set_shift
Vector & set_shift()
Sets the shift vector field.
Definition excision_hor.h:165
Lorene::Excision_hor::get_delta_t
double get_delta_t() const
Returns the timestep used for evolution.
Definition excision_hor.h:150
Lorene::Excision_hor::get_lapse
const Scalar & get_lapse() const
Returns the lapse function.
Definition excision_hor.h:138
Lorene::Excision_hor::sauve
virtual void sauve(FILE *) const
Save in a file.
Definition excision_hor.C:532
Lorene::Excision_hor::sph
Spheroid sph
The associated Spheroid object.
Definition excision_hor.h:50
Lorene::Excision_hor::p_get_BC_bmN
Scalar * p_get_BC_bmN
Source of Dirichlet BC for (b-N).
Definition excision_hor.h:81
Lorene::Excision_hor::get_conf_fact
const Scalar & get_conf_fact() const
Returns the conformal factor associated with the surface.
Definition excision_hor.h:135
Lorene::Excision_hor::lapse
Scalar lapse
The lapse defined on the 3 slice.
Definition excision_hor.h:56
Lorene::Excision_hor::conf_fact
Scalar conf_fact
The value of the conformal factor on the 3-slice.
Definition excision_hor.h:53
Lorene::Excision_hor::set_der_0x0
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition excision_hor.C:103
Lorene::Excision_hor::set_Kij
Sym_tensor & set_Kij()
Sets the extrinsic curvature.
Definition excision_hor.h:171
Lorene::Excision_hor::get_BC_conf_fact
const Scalar & get_BC_conf_fact() const
Source of Neumann BC on , derived from the vanishing expansion.
Definition excision_hor.C:120
Lorene::Excision_hor::delta_t
double delta_t
The time step for evolution in parabolic drivers.
Definition excision_hor.h:68
Lorene::Excision_hor::get_gamij
const Metric & get_gamij() const
Returns the symmetric tensor .
Definition excision_hor.h:144
Lorene::Excision_hor::get_sph
const Spheroid & get_sph() const
Returns the spheroid.
Definition excision_hor.h:132
Lorene::Excision_hor::get_BC_bmN
const Scalar & get_BC_bmN(int choice_bmN, double value=1.) const
Source of Dirichlet BC for (b-N): case 0: based on an entropy prescription, case 1: from a component ...
Definition excision_hor.C:147
Lorene::Excision_hor::del_deriv
virtual void del_deriv() const
Deletes all the derived quantities.
Definition excision_hor.C:94
Lorene::Excision_hor::get_shift
const Vector & get_shift() const
Returns the shift vector field.
Definition excision_hor.h:141
Lorene::Metric
Metric for tensor calculation.
Definition metric.h:90
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