LORENE
star_bin_extr_curv_xcts.C
1/*
2 * Method of class Star_bin_xcts to compute
3 * the extrinsic curvature tensor
4 * (see file star.h for documentation)
5 */
6
7/*
8 * Copyright (c) 2010 Michal Bejger
9 *
10 * This file is part of LORENE.
11 *
12 * LORENE is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2
14 * as published by the Free Software Foundation.
15 *
16 * LORENE is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with LORENE; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 *
25 */
26
27
28
29/*
30 * $Id: star_bin_extr_curv_xcts.C,v 1.5 2016/12/05 16:18:14 j_novak Exp $
31 * $Log: star_bin_extr_curv_xcts.C,v $
32 * Revision 1.5 2016/12/05 16:18:14 j_novak
33 * Suppression of some global variables (file names, loch, ...) to prevent redefinitions
34 *
35 * Revision 1.4 2014/10/13 08:53:38 j_novak
36 * Lorene classes and functions now belong to the namespace Lorene.
37 *
38 * Revision 1.3 2014/10/06 15:13:17 j_novak
39 * Modified #include directives to use c++ syntax.
40 *
41 * Revision 1.2 2010/06/15 08:10:29 m_bejger
42 * *** empty log message ***
43 *
44 * Revision 1.1 2010/05/04 07:51:05 m_bejger
45 * Initial version
46 *
47 * $Header: /cvsroot/Lorene/C++/Source/Star/star_bin_extr_curv_xcts.C,v 1.5 2016/12/05 16:18:14 j_novak Exp $
48 *
49 */
50
51// C headers
52#include <cmath>
53
54// Headers Lorene
55#include "star.h"
56
57namespace Lorene {
59
60 // D~_j beta^i
61 const Tensor& dbeta = beta_auto.derive_con(flat) ;
62
63 // Trace of D~_j beta^i :
64 Scalar div_beta = beta_auto.divergence(flat) ;
65
66 // Computation of \hat{A}^{ij}, Eq. 8.130 of arXiv:gr-qc/0703035
67 // -------------------------------------------------------------
68
69 for (int i=1; i<=3; i++)
70 for (int j=1; j<=i; j++) {
71
72 haij_auto.set(i, j) = dbeta(i, j) + dbeta(j, i) -
73 double(2) /double(3) * div_beta * (flat.con())(i,j) ;
74 }
75
76 haij_auto = 0.5 * pow(Psi, 7.) * haij_auto / chi ;
77 //## for comparison: old formulation
78 //haij_auto = 0.5 * haij_auto / nn ;
79
80 haij_auto.std_spectral_base() ;
81
82 // Computation of (\hat{A}_{ij}\hat{A}^{ij})_{auto}
83 // ------------------------------------------------
84
85 Sym_tensor haij_auto_cov = haij_auto.up_down(flat) ;
86
87 hacar_auto = contract(haij_auto_cov, 0, 1, haij_auto, 0, 1, true) ;
88
89 // The derived quantities are obsolete
90 // -----------------------------------
91
92 del_deriv() ;
93
94}
95}
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:393
Scalar Psi
Total conformal factor .
Definition star.h:1152
Sym_tensor haij_auto
Part of the extrinsic curvature tensor generated by beta_auto.
Definition star.h:1193
void extrinsic_curvature()
Computes haij_auto and hacar_auto from beta_auto, nn and Psi .
Metric_flat flat
Flat metric defined on the mapping (Spherical components with respect to the mapping of the star) .
Definition star.h:1177
Vector beta_auto
Part of the shift vector generated principally by the star (Spherical components with respect to the ...
Definition star.h:1182
Scalar chi
Total function .
Definition star.h:1155
virtual void del_deriv() const
Deletes all the derived quantities.
Scalar hacar_auto
Part of the scalar generated by beta_auto, i.e.
Definition star.h:1205
Class intended to describe valence-2 symmetric tensors.
Definition sym_tensor.h:226
Tensor handling.
Definition tensor.h:294
Cmp pow(const Cmp &, int)
Power .
Definition cmp_math.C:351
Tenseur contract(const Tenseur &, int id1, int id2)
Self contraction of two indices of a Tenseur .
Lorene prototypes.
Definition app_hor.h:67