LORENE
single_hor.C
1 /*
2  * Methods of class single_hor
3  *
4  * (see file isol_hor.h for documentation).
5  *
6  */
7 
8 /*
9  * Copyright (c) 2004 Jose Luis Jaramillo
10  * Francois Limousin
11  *
12  * This file is part of LORENE.
13  *
14  * LORENE is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License version 2
16  * as published by the Free Software Foundation.
17  *
18  * LORENE is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with LORENE; if not, write to the Free Software
25  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26  *
27  */
28 
29 
30 
31 /*
32  * $Id: single_hor.C,v 1.4 2016/12/05 16:17:56 j_novak Exp $
33  * $Log: single_hor.C,v $
34  * Revision 1.4 2016/12/05 16:17:56 j_novak
35  * Suppression of some global variables (file names, loch, ...) to prevent redefinitions
36  *
37  * Revision 1.3 2014/10/13 08:53:01 j_novak
38  * Lorene classes and functions now belong to the namespace Lorene.
39  *
40  * Revision 1.2 2014/10/06 15:13:11 j_novak
41  * Modified #include directives to use c++ syntax.
42  *
43  * Revision 1.1 2007/04/13 15:28:35 f_limousin
44  * Lots of improvements, generalisation to an arbitrary state of
45  * rotation, implementation of the spatial metric given by Samaya.
46  *
47  *
48  * $Header: /cvsroot/Lorene/C++/Source/Isol_hor/single_hor.C,v 1.4 2016/12/05 16:17:56 j_novak Exp $
49  *
50  */
51 
52 // C headers
53 #include <cstdlib>
54 #include <cassert>
55 
56 // Lorene headers
57 #include "param.h"
58 #include "utilitaires.h"
59 #include "time_slice.h"
60 #include "isol_hor.h"
61 #include "tensor.h"
62 #include "metric.h"
63 #include "evolution.h"
64 //#include "graphique.h"
65 
66 //--------------//
67 // Constructors //
68 //--------------//
69 // Standard constructor
70 // --------------------
71 
72 namespace Lorene {
74  mp(mpi), nz(mpi.get_mg()->get_nzone()), radius ((mpi.get_alpha())[0]),
75  omega(0),regul(0),
76  n_auto(mpi), n_comp(mpi), nn(mpi),
77  psi_auto(mpi), psi_comp(mpi), psi(mpi),
78  dn(mpi, COV, mpi.get_bvect_spher()),
79  dpsi(mpi, COV, mpi.get_bvect_spher()),
80  beta_auto(mpi, CON, mpi.get_bvect_spher()),
81  beta_comp(mpi, CON, mpi.get_bvect_spher()),
82  beta(mpi, CON, mpi.get_bvect_spher()),
83  aa_auto(mpi, CON, mpi.get_bvect_spher()),
84  aa_comp(mpi, CON, mpi.get_bvect_spher()),
85  aa(mpi, CON, mpi.get_bvect_spher()),
86  tgam(mpi.flat_met_spher()),
87  ff(mpi.flat_met_spher()),
88  hh(mpi, CON, mpi.get_bvect_spher()),
89  gamt_point(mpi, CON, mpi.get_bvect_spher()),
90  trK(mpi), trK_point(mpi), decouple(mpi){
91 
92  hh.set_etat_zero() ;
93  set_der_0x0() ;
94 }
95 
96 // Copy constructor
97 // ----------------
98 
99 Single_hor::Single_hor(const Single_hor& singlehor_in)
100  : mp(singlehor_in.mp),
101  nz(singlehor_in.nz),
102  radius(singlehor_in.radius),
103  omega(singlehor_in.omega),
104  regul(singlehor_in.regul),
105  n_auto(singlehor_in.n_auto),
106  n_comp(singlehor_in.n_comp),
107  nn(singlehor_in.nn),
108  psi_auto(singlehor_in.psi_auto),
109  psi_comp(singlehor_in.psi_comp),
110  psi(singlehor_in.psi),
111  dn(singlehor_in.dn),
112  dpsi(singlehor_in.dpsi),
113  beta_auto(singlehor_in.beta_auto),
114  beta_comp(singlehor_in.beta_comp),
115  beta(singlehor_in.beta),
116  aa_auto(singlehor_in.aa_auto),
117  aa_comp(singlehor_in.aa_comp),
118  aa(singlehor_in.aa),
119  tgam(singlehor_in.tgam),
120  ff(singlehor_in.ff),
121  hh(singlehor_in.hh),
122  gamt_point(singlehor_in.gamt_point),
123  trK(singlehor_in.trK),
124  trK_point(singlehor_in.trK_point),
125  decouple(singlehor_in.decouple){
126 
127  set_der_0x0() ;
128 }
129 
130 // Constructor from a file
131 // -----------------------
132 
134  : mp(mpi), nz(mpi.get_mg()->get_nzone()), radius ((mpi.get_alpha())[0]),
135  omega(0),regul(0),
136  n_auto(mpi, *(mpi.get_mg()), fich), n_comp(mpi),
137  nn(mpi),
138  psi_auto(mpi, *(mpi.get_mg()), fich), psi_comp(mpi),
139  psi(mpi),
140  dn(mpi, COV, mpi.get_bvect_spher()),
141  dpsi(mpi, COV, mpi.get_bvect_spher()),
142  beta_auto(mpi, mpi.get_bvect_spher(), fich),
143  beta_comp(mpi, CON, mpi.get_bvect_spher()),
144  beta(mpi, CON, mpi.get_bvect_spher()),
145  aa_auto(mpi, CON, mpi.get_bvect_spher()),
146  aa_comp(mpi, CON, mpi.get_bvect_spher()),
147  aa(mpi, CON, mpi.get_bvect_spher()),
148  tgam(mpi.flat_met_spher()),
149  ff(mpi.flat_met_spher()),
150  hh(mpi, CON, mpi.get_bvect_spher()),
151  gamt_point(mpi, CON, mpi.get_bvect_spher()),
152  trK(mpi), trK_point(mpi), decouple(mpi){
153 
154  fread_be(&omega, sizeof(double), 1, fich) ;
155 
156  // tgam, gamt_point, trK, trK_point
157 
158  Sym_tensor met_file (mp, mp.get_bvect_spher(), fich) ;
159  tgam = met_file ;
160 
161  Sym_tensor gamt_point_file (mp, mp.get_bvect_spher(), fich) ;
162  gamt_point = gamt_point_file ;
163 
164  Scalar trK_file (mp, *(mp.get_mg()), fich) ;
165  trK = trK_file ;
166 
167  Scalar trK_point_file (mp, *(mp.get_mg()), fich) ;
168  trK_point = trK_point_file ;
169 
170  set_der_0x0() ;
171  hh = tgam.con() - ff.con() ;
172 
173 }
174 
175  //--------------//
176  // Destructor //
177  //--------------//
178 
180 
182 }
183 
184 
185  //-----------------------//
186  // Mutators / assignment //
187  //-----------------------//
188 
189 void Single_hor::operator=(const Single_hor& singlehor_in) {
190 
191  mp = singlehor_in.mp ;
192  nz = singlehor_in.nz ;
193  radius = singlehor_in.radius ;
194  omega = singlehor_in.omega ;
195  regul = singlehor_in.regul ;
196  n_auto = singlehor_in.n_auto ;
197  n_comp = singlehor_in.n_comp ;
198  nn = singlehor_in.nn ;
199  psi_auto = singlehor_in.psi_auto ;
200  psi_comp = singlehor_in.psi_comp ;
201  psi = singlehor_in.psi ;
202  dn = singlehor_in.dn ;
203  dpsi = singlehor_in.dpsi ;
204  beta_auto = singlehor_in.beta_auto ;
205  beta_comp = singlehor_in.beta_comp ;
206  beta = singlehor_in.beta ;
207  aa_auto = singlehor_in.aa_auto ;
208  aa_comp = singlehor_in.aa_comp ;
209  aa = singlehor_in.aa ;
210  tgam = singlehor_in.tgam ;
211  ff = singlehor_in.ff ;
212  hh = singlehor_in.hh ;
213  gamt_point = singlehor_in.gamt_point ;
214  trK = singlehor_in.trK ;
215  trK_point = singlehor_in.trK_point ;
216  decouple = singlehor_in.decouple ;
217 }
218 
219 
220  //---------------------//
221  // Memory management //
222  //---------------------//
223 
224 void Single_hor::del_deriv() const {
225 
226  if (p_psi4 != 0x0) delete p_psi4 ;
227  if (p_gam != 0x0) delete p_gam ;
228  if (p_k_dd != 0x0) delete p_k_dd ;
229 
230  set_der_0x0() ;
231 }
232 
233 
235 
236  p_psi4 = 0x0 ;
237  p_gam = 0x0 ;
238  p_k_dd = 0x0 ;
239 
240 }
241 
242  //--------------------------//
243  // Save in a file //
244  //--------------------------//
245 
246 
247 void Single_hor::sauve(FILE* fich) const {
248 
249  n_auto.sauve(fich) ;
250  psi_auto.sauve(fich) ;
251  beta_auto.sauve(fich) ;
252 
253  fwrite_be (&omega, sizeof(double), 1, fich) ;
254 
255  tgam.con().sauve(fich) ;
256  gamt_point.sauve(fich) ;
257  trK.sauve(fich) ;
258  trK_point.sauve(fich) ;
259 }
260 
261 // Accessors
262 // ---------
263 
265 
266  return n_auto ;
267 }
268 
270 
271  return n_comp ;
272 }
273 const Scalar& Single_hor::get_nn() const {
274 
275  return nn ;
276 }
277 
279 
280  return psi_auto ;
281 }
282 
284 
285  return psi_comp ;
286 }
287 const Scalar& Single_hor::get_psi() const {
288 
289  return psi ;
290 }
291 const Scalar& Single_hor::get_psi4() const {
292 
293  if (p_psi4 == 0x0) {
294 
295  p_psi4 = new Scalar( pow( psi, 4.) ) ;
297  }
298 
299  return *p_psi4 ;
300 }
301 
302 const Vector& Single_hor::get_dn() const {
303 
304  return dn ;
305 }
306 
307 const Vector& Single_hor::get_dpsi() const {
308 
309  return dpsi ;
310 }
311 
313 
314  return beta_auto ;
315 }
316 
318 
319  return beta_comp ;
320 
321 }
322 const Vector& Single_hor::get_beta() const {
323 
324  return beta ;
325 }
326 
328 
329  return aa_auto ;
330 }
331 
333 
334  return aa_comp ;
335 
336 }
338 
339  return aa ;
340 
341 }
342 const Metric& Single_hor::get_gam() const {
343 
344  if (p_gam == 0x0) {
345  p_gam = new Metric( get_psi4()*tgam.cov() ) ;
346  }
347 
348  return *p_gam ;
349 }
350 
352 
353  if (p_k_dd == 0x0) {
354 
355  Sym_tensor temp (aa/get_psi4()+1./3.*trK*get_gam().con()) ;
356 
357  p_k_dd = new Sym_tensor( temp.up_down(get_gam()) ) ;
359  }
360 
361  return *p_k_dd ;
362 }
363 
364 
365 void Single_hor::set_psi_auto(const Scalar& psi_in) {
366 
367  psi_auto = psi_in ;
368 }
369 void Single_hor::set_n_auto(const Scalar& n_in) {
370 
371  n_auto = n_in ;
372 }
373 void Single_hor::set_beta_auto(const Scalar& beta_in) {
374 
375  beta_auto = beta_in ;
376 }
377 void Single_hor::set_aa_auto(const Scalar& aa_in) {
378 
379  aa_auto = aa_in ;
380 }
381 void Single_hor::set_aa_comp(const Scalar& aa_in) {
382 
383  aa_comp = aa_in ;
384 }
385 void Single_hor::set_aa(const Scalar& aa_in) {
386 
387  aa = aa_in ;
388 }
389 
390 
391 // Import the lapse from the companion (Bhole case)
392 
394 
395  Scalar temp (mp) ;
396  temp.import(comp.n_auto) ;
397  temp.std_spectral_base() ;
398  n_comp = temp ;
399  nn = temp + n_auto ;
400 
401  Vector dn_comp (mp, COV, mp.get_bvect_cart()) ;
402  dn_comp.set_etat_qcq() ;
403  Vector auxi (comp.n_auto.derive_cov(comp.ff)) ;
404  auxi.dec_dzpuis(2) ;
405  auxi.change_triad(auxi.get_mp().get_bvect_cart()) ;
406  for (int i=1 ; i<=3 ; i++){
407  if (auxi(i).get_etat() != ETATZERO)
408  auxi.set(i).raccord(3) ;
409  }
410 
411  auxi.change_triad(mp.get_bvect_cart()) ;
412  assert ( *(auxi.get_triad()) == *(dn_comp.get_triad())) ;
413 
414  for (int i=1 ; i<=3 ; i++){
415  dn_comp.set(i).import(auxi(i)) ;
416  dn_comp.set(i).set_spectral_va().set_base(auxi(i).get_spectral_va().
417  get_base()) ;
418  }
419  dn_comp.inc_dzpuis(2) ;
420  dn_comp.change_triad(mp.get_bvect_spher()) ;
421 
422  dn = n_auto.derive_cov(ff) + dn_comp ;
423 }
424 
425 // Import the conformal factor from the companion (Bhole case)
426 
428 
429  Scalar temp (mp) ;
430  temp.import(comp.psi_auto) ;
431  temp.std_spectral_base() ;
432  psi_comp = temp ;
433  psi = temp + psi_auto ;
434 
435  Vector dpsi_comp (mp, COV, mp.get_bvect_cart()) ;
436  dpsi_comp.set_etat_qcq() ;
437  Vector auxi (comp.psi_auto.derive_cov(comp.ff)) ;
438  auxi.dec_dzpuis(2) ;
439  auxi.change_triad(auxi.get_mp().get_bvect_cart()) ;
440  for (int i=1 ; i<=3 ; i++){
441  if (auxi(i).get_etat() != ETATZERO)
442  auxi.set(i).raccord(3) ;
443  }
444 
445  auxi.change_triad(mp.get_bvect_cart()) ;
446  assert ( *(auxi.get_triad()) == *(dpsi_comp.get_triad())) ;
447 
448  for (int i=1 ; i<=3 ; i++){
449  dpsi_comp.set(i).import(auxi(i)) ;
450  dpsi_comp.set(i).set_spectral_va().set_base(auxi(i).get_spectral_va().
451  get_base()) ;
452  }
453  dpsi_comp.inc_dzpuis(2) ;
454  dpsi_comp.change_triad(mp.get_bvect_spher()) ;
455  /*
456  Vector dpsi_comp_zec (psi_comp().derive_cov(ff)) ;
457  for (int i=1 ; i<=3 ; i++)
458  for (int l=nz-1 ; l<=nz-1 ; l++) {
459  if (dpsi_comp.set(i).get_etat() == ETATQCQ)
460  dpsi_comp.set(i).set_domain(l) = dpsi_comp_zec(i).domain(l) ;
461  }
462  */
463 
464  dpsi = psi_auto.derive_cov(ff) + dpsi_comp ;
465 
466 }
467 
469 
470  Vector tmp_vect (mp, CON, mp.get_bvect_cart()) ;
471  Vector shift_comp (comp.beta_auto) ;
472  shift_comp.change_triad(comp.mp.get_bvect_cart()) ;
473  shift_comp.change_triad(mp.get_bvect_cart()) ;
474  assert (*(shift_comp.get_triad()) == *(tmp_vect.get_triad())) ;
475 
476  tmp_vect.set(1).import(shift_comp(1)) ;
477  tmp_vect.set(2).import(shift_comp(2)) ;
478  tmp_vect.set(3).import(shift_comp(3)) ;
479  tmp_vect.std_spectral_base() ;
480  tmp_vect.change_triad(mp.get_bvect_spher()) ;
481 
482  beta_comp = tmp_vect ;
483  beta = beta_auto + beta_comp ;
484 }
485 
486 //Initialisation to Schwartzchild
488 
489  Scalar auxi(mp) ;
490 
491  // Initialisation of the lapse different of zero on the horizon
492  // at the first step
493  auxi = 0.5 - 0.5/mp.r ;
494  auxi.annule(0, 0);
495  auxi.set_dzpuis(0) ;
496 
497  Scalar temp(mp) ;
498  temp = auxi;
499  temp.std_spectral_base() ;
500  temp.raccord(1) ;
501  n_auto = temp ;
502 
503  temp = 0.5 ;
504  temp.std_spectral_base() ;
505  n_comp = temp ;
506  nn = n_auto ;
507 
508  auxi = 0.5 + radius/mp.r ;
509  auxi.annule(0, 0);
510  auxi.set_dzpuis(0) ;
511  temp = auxi;
512  temp.std_spectral_base() ;
513  temp.raccord(1) ;
514  psi_auto = temp ;
515 
516  temp = 0.5 ;
517  temp.std_spectral_base() ;
518  psi_comp = temp ;
519  psi = psi_auto + psi_comp ;
520 
521  dn = nn.derive_cov(ff) ;
522  dpsi = psi.derive_cov(ff) ;
523 
524  Vector temp_vect1(mp, CON, mp.get_bvect_spher()) ;
525  temp_vect1.set(1) = 0.0/mp.r/mp.r ;
526  temp_vect1.set(2) = 0. ;
527  temp_vect1.set(3) = 0. ;
528  temp_vect1.std_spectral_base() ;
529 
530  Vector temp_vect2(mp, CON, mp.get_bvect_spher()) ;
531  temp_vect2.set_etat_zero() ;
532 
533  beta_auto = temp_vect1 ;
534  beta_comp = temp_vect2 ;
535  beta = temp_vect1 ;
536 
537 }
538 
540 
541  Metric flat (mp.flat_met_spher()) ;
542  tgam = flat ;
543 
545  trK.set_etat_zero() ;
547 
548 }
549 
550 
552 
553  Scalar auxi(mp) ;
554 
555  auxi = (1-radius/mp.r)/(1+radius/mp.r) ;
556  auxi.annule(0, 0);
557  auxi.set_outer_boundary((*mp.get_mg()).get_nzone(), 1.) ;
558  auxi.set_dzpuis(0) ;
559 
560  Scalar temp(mp) ;
561  temp = auxi;
562  temp.std_spectral_base() ;
563  temp.raccord(1) ;
564  n_auto = temp;
565 
566  temp.set_etat_zero() ;
567  n_comp = temp ;
568  nn = temp ;
569 
570  auxi = 1 + radius/mp.r ;
571  auxi.annule(0, 0);
572  auxi.set_outer_boundary((*mp.get_mg()).get_nzone(), 1.) ;
573  auxi.set_dzpuis(0) ;
574 
575  temp = auxi;
576  temp.std_spectral_base() ;
577  temp.raccord(1) ;
578  psi_auto = temp ;
579  temp.set_etat_zero() ;
580  psi_comp = temp ;
581  psi = temp ;
582 
583  dn = nn.derive_cov(ff) ;
584  dpsi = psi.derive_cov(ff) ;
585 
586  Vector temp_vect(mp, CON, mp.get_bvect_spher()) ;
587  temp_vect.set_etat_zero() ;
588  beta_auto = temp_vect ;
589  beta_comp = temp_vect ;
590  beta = temp_vect ;
591 
592 }
593 
594 
595 
596 }
void beta_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp.
Definition: single_hor.C:468
Metric for tensor calculation.
Definition: metric.h:90
virtual void set_etat_qcq()
Sets the logical state of all components to ETATQCQ (ordinary state).
Definition: tensor.C:490
virtual void sauve(FILE *) const
Save in a binary file.
Definition: tensor_sym.C:375
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
Definition: metric.C:293
void set_psi_auto(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
Definition: single_hor.C:365
const Metric & get_gam() const
metric
Definition: single_hor.C:342
Vector dn
Covariant derivative of the lapse with respect to the flat metric .
Definition: isol_hor.h:937
Metric tgam
3 metric tilde
Definition: isol_hor.h:977
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition: single_hor.C:234
virtual void set_etat_zero()
Sets the logical state to ETATZERO (zero).
Definition: scalar.C:330
virtual void annule(int l_min, int l_max)
Sets the Scalar to zero in several domains.
Definition: scalar.C:397
const Sym_tensor & get_k_dd() const
k_dd
Definition: single_hor.C:351
Scalar decouple
Function used to construct from the total .
Definition: isol_hor.h:1002
const Base_vect_spher & get_bvect_spher() const
Returns the orthonormal vectorial basis associated with the coordinates of the mapping.
Definition: map.h:801
const Scalar & get_psi() const
Conformal factor .
Definition: single_hor.C:287
Lorene prototypes.
Definition: app_hor.h:67
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Definition: map.h:783
Scalar n_comp
Lapse function .
Definition: isol_hor.h:918
Tensor field of valence 0 (or component of a tensorial field).
Definition: scalar.h:393
const Vector & get_beta_comp() const
Shift function .
Definition: single_hor.C:317
double omega
Angular velocity in LORENE&#39;s units.
Definition: isol_hor.h:909
Tensor up_down(const Metric &gam) const
Computes a new tensor by raising or lowering all the indices of *this .
const Scalar & get_psi4() const
Conformal factor .
Definition: single_hor.C:291
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
Definition: scalar.C:790
virtual void sauve(FILE *) const
Save in a binary file.
Definition: tensor.C:915
const Vector & get_beta_auto() const
Shift function .
Definition: single_hor.C:312
Sym_tensor aa_auto
Components of the conformal representation of the traceless part of the extrinsic curvature: ...
Definition: isol_hor.h:959
void set(const Map *mp, Mtbl *(*construct)(const Map *))
Semi-constructor from a mapping and a method.
Definition: coord.C:137
const Scalar & get_psi_comp() const
Conformal factor .
Definition: single_hor.C:283
Tensor field of valence 1.
Definition: vector.h:188
void set_dzpuis(int)
Modifies the dzpuis flag.
Definition: scalar.C:814
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values in the compactified ext...
Definition: tensor.C:817
Vector beta_comp
Shift function .
Definition: isol_hor.h:947
Sym_tensor aa
Components of the conformal representation of the traceless part of the extrinsic curvature: ...
Definition: isol_hor.h:971
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
void set_beta_auto(const Scalar &shift_in)
Sets the shift.
Definition: single_hor.C:373
Metric * p_gam
Spatial metric .
Definition: isol_hor.h:953
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
Definition: metric_flat.C:156
const Scalar & get_n_auto() const
Lapse function .
Definition: single_hor.C:264
virtual void sauve(FILE *) const
Save in a file.
Definition: scalar.C:692
const Scalar & get_nn() const
Lapse function .
Definition: single_hor.C:273
Single_hor(Map_af &mpi)
Standard constructor.
Definition: single_hor.C:73
Scalar psi
Conformal factor .
Definition: isol_hor.h:930
Scalar trK
Trace of the extrinsic curvature.
Definition: isol_hor.h:989
double regul
Intensity of the correction on the shift vector.
Definition: isol_hor.h:912
Sym_tensor * p_k_dd
Components of the extrinsic curvature:
Definition: isol_hor.h:974
void set_n_auto(const Scalar &nn_in)
Sets the lapse.
Definition: single_hor.C:369
Sym_tensor hh
Deviation metric.
Definition: isol_hor.h:983
void set_outer_boundary(int l, double x)
Sets the value of the Scalar at the outer boundary of a given domain.
Definition: scalar_manip.C:321
virtual ~Single_hor()
Destructor.
Definition: single_hor.C:179
const Sym_tensor & get_aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature:
Definition: single_hor.C:332
Vector beta_auto
Shift function .
Definition: isol_hor.h:944
Vector beta
Shift function .
Definition: isol_hor.h:950
void init_bhole()
Sets the values of the fields to :
Definition: single_hor.C:487
const Vector & get_dpsi() const
Covariant derivative with respect to the flat metric of the conformal factor .
Definition: single_hor.C:307
void init_bhole_seul()
Initiates for a single black hole.
Definition: single_hor.C:551
int fwrite_be(const int *aa, int size, int nb, FILE *fich)
Writes integer(s) into a binary file according to the big endian convention.
Definition: fwrite_be.C:73
Sym_tensor aa_comp
Components of the conformal representation of the traceless part of the extrinsic curvature: ...
Definition: isol_hor.h:965
Cmp pow(const Cmp &, int)
Power .
Definition: cmp_math.C:351
virtual void sauve(FILE *fich) const
Total or partial saves in a binary file.
Definition: single_hor.C:247
Scalar n_auto
Lapse function .
Definition: isol_hor.h:915
Vector dpsi
Covariant derivative of the conformal factor .
Definition: isol_hor.h:941
void set_aa(const Scalar &aa_in)
Sets aa.
Definition: single_hor.C:385
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
Definition: fread_be.C:72
void import(const Scalar &ci)
Assignment to another Scalar defined on a different mapping.
Definition: scalar_import.C:71
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
Definition: metric.C:283
void operator=(const Single_hor &)
Assignment to another Single_hor.
Definition: single_hor.C:189
void del_deriv() const
Deletes all the derived quantities.
Definition: single_hor.C:224
Binary black holes system.
Definition: isol_hor.h:894
const Vector & get_dn() const
Covariant derivative of the lapse function .
Definition: single_hor.C:302
Affine radial mapping.
Definition: map.h:2048
const Base_vect_cart & get_bvect_cart() const
Returns the Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
Definition: map.h:809
Scalar psi_comp
Conformal factor .
Definition: isol_hor.h:927
Map_af & mp
Affine mapping.
Definition: isol_hor.h:900
void n_comp_import(const Single_hor &comp)
Imports the part of N due to the companion hole comp .
Definition: single_hor.C:393
void set_aa_comp(const Scalar &aa_comp_in)
Sets aa_comp.
Definition: single_hor.C:381
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
Definition: isol_hor.h:986
void set_aa_auto(const Scalar &aa_auto_in)
Sets aa_auto.
Definition: single_hor.C:377
void psi_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp .
Definition: single_hor.C:427
const Sym_tensor & get_aa_auto() const
Conformal representation of the traceless part of the extrinsic curvature:
Definition: single_hor.C:327
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
Definition: isol_hor.h:992
Scalar psi_auto
Conformal factor .
Definition: isol_hor.h:924
virtual void set_etat_zero()
Sets the logical state of all components to ETATZERO (zero state).
Definition: tensor.C:506
Scalar & set(int)
Read/write access to a component.
Definition: vector.C:302
int nz
Number of zones.
Definition: isol_hor.h:903
const Vector & get_beta() const
Shift function .
Definition: single_hor.C:322
void init_met_trK()
Sets the 3-metric tilde to the flat metric and gamt_point, trK and trK_point to zero.
Definition: single_hor.C:539
double radius
Radius of the horizon in LORENE&#39;s units.
Definition: isol_hor.h:906
const Scalar & get_n_comp() const
Lapse function .
Definition: single_hor.C:269
Metric_flat ff
3 metric flat
Definition: isol_hor.h:980
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
Definition: scalar_deriv.C:390
const Sym_tensor & get_aa() const
Conformal representation of the traceless part of the extrinsic curvature:
Definition: single_hor.C:337
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
Definition: tensor.C:935
const Metric_flat & flat_met_spher() const
Returns the flat metric associated with the spherical coordinates and with components expressed in th...
Definition: map.C:324
Class intended to describe valence-2 symmetric tensors.
Definition: sym_tensor.h:226
Scalar nn
Lapse function .
Definition: isol_hor.h:921
Scalar * p_psi4
Conformal factor .
Definition: isol_hor.h:933
Coord r
r coordinate centered on the grid
Definition: map.h:736
const Scalar & get_psi_auto() const
Conformal factor .
Definition: single_hor.C:278