00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __EXCISIONHOR_H_
00027 #define __EXCISIONHOR_H_
00028
00029
00030
00031
00032
00033 #include "metric.h"
00034 #include "spheroid.h"
00035
00042 class Excision_hor {
00043
00044
00045
00046
00047 protected:
00049 Spheroid sph ;
00050
00052 Scalar conf_fact ;
00053
00055 Scalar lapse ;
00056
00058 Vector shift ;
00059
00061 Metric gamij ;
00062
00064 Sym_tensor Kij ;
00065
00067 double delta_t;
00068
00070 double no_of_steps;
00071
00073 Sym_tensor Tij;
00074
00075
00076
00077
00078 protected:
00079 mutable Scalar* p_get_BC_conf_fact ;
00080 mutable Scalar* p_get_BC_bmN ;
00081 mutable Scalar* p_get_BC_bpN ;
00082 mutable Vector* p_get_BC_shift ;
00083
00084
00085
00086
00087 public:
00088
00101 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) ;
00102 Excision_hor(const Excision_hor& ) ;
00103
00105 Excision_hor(FILE* ) ;
00106
00107 virtual ~Excision_hor() ;
00108
00109
00110
00111
00112 protected:
00114 virtual void del_deriv() const ;
00115
00117 void set_der_0x0() const ;
00118
00119
00120
00121
00122 public:
00124 void operator=(const Excision_hor&) ;
00125
00126
00127
00128
00129 public:
00131 const Spheroid& get_sph() const {return sph; };
00132
00134 const Scalar& get_conf_fact() const {return conf_fact; } ;
00135
00137 const Scalar& get_lapse() const {return lapse ; } ;
00138
00140 const Vector& get_shift() const {return shift ; } ;
00141
00143 const Metric& get_gamij() const {return gamij ; } ;
00144
00146 const Sym_tensor& get_Kij() const {return Kij ; } ;
00147
00149 double get_delta_t() const {return delta_t ;};
00150
00152 double get_no_of_steps() const {return no_of_steps ;};
00153
00155 const Sym_tensor& get_Tij() const{return Tij; } ;
00156
00158 Scalar& set_conf_fact() {del_deriv() ; return conf_fact ; } ;
00159
00161 Scalar& set_lapse() {del_deriv() ; return lapse ; } ;
00162
00164 Vector& set_shift() {del_deriv() ; return shift ; } ;
00165
00167 Metric& set_gamij() {del_deriv() ; return gamij ; } ;
00168
00170 Sym_tensor& set_Kij() {del_deriv() ; return Kij ; } ;
00171
00173 Sym_tensor& set_Tij() {del_deriv() ; return Tij; } ;
00174
00175
00176 double& set_delta_t() {del_deriv() ; return delta_t ; } ;
00177
00178 double& set_no_of_steps() {del_deriv() ; return no_of_steps ; } ;
00179
00180
00181
00182
00183 public:
00184
00186 const Scalar& get_BC_conf_fact() const ;
00188 const Scalar& get_BC_bmN(int choice_bmN, double value = 1.) const ;
00191 const Scalar& get_BC_bpN(int choice_bpN, double c_bpn_lap = 1., double c_bpn_fin = 1., Scalar *bpN_fin = 0x0) const ;
00193 const Vector& get_BC_shift(double c_V_lap) const ;
00194
00195
00196
00197 public:
00198 virtual void sauve(FILE *) const ;
00199
00201 friend ostream& operator<<(ostream& , const Spheroid& ) ;
00202
00203 };
00204
00205 ostream& operator<<(ostream& , const Spheroid& ) ;
00206
00207
00208 #endif