00001 /* 00002 * Method of class Etoile_bin to compute the extrinsic curvature tensor 00003 * 00004 */ 00005 00006 /* 00007 * Copyright (c) 2000-2001 Eric Gourgoulhon 00008 * 00009 * This file is part of LORENE. 00010 * 00011 * LORENE is free software; you can redistribute it and/or modify 00012 * it under the terms of the GNU General Public License as published by 00013 * the Free Software Foundation; either version 2 of the License, or 00014 * (at your option) any later version. 00015 * 00016 * LORENE is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU General Public License 00022 * along with LORENE; if not, write to the Free Software 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00024 * 00025 */ 00026 00027 00028 char et_bin_extr_curv_C[] = "$Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_extr_curv.C,v 1.5 2005/08/29 15:21:37 p_grandclement Exp $" ; 00029 00030 /* 00031 * $Id: et_bin_extr_curv.C,v 1.5 2005/08/29 15:21:37 p_grandclement Exp $ 00032 * $Log: et_bin_extr_curv.C,v $ 00033 * Revision 1.5 2005/08/29 15:21:37 p_grandclement 00034 * Suppression of Etoile_bion::fait_taij_auto, that was not used (I think) 00035 * 00036 * Revision 1.4 2003/02/13 16:40:25 p_grandclement 00037 * Addition of various things for the Bin_ns_bh project, non of them being 00038 * completely tested 00039 * 00040 * Revision 1.3 2003/01/17 13:33:35 f_limousin 00041 * Add comments 00042 * 00043 * Revision 1.2 2002/12/10 14:20:43 k_taniguchi 00044 * Change the multiplication "*" to "%". 00045 * 00046 * Revision 1.1.1.1 2001/11/20 15:19:28 e_gourgoulhon 00047 * LORENE 00048 * 00049 * Revision 2.0 2000/03/07 14:51:49 eric 00050 * *** empty log message *** 00051 * 00052 * 00053 * $Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_extr_curv.C,v 1.5 2005/08/29 15:21:37 p_grandclement Exp $ 00054 * 00055 */ 00056 00057 // Headers Lorene 00058 #include "etoile.h" 00059 00060 void Etoile_bin::extrinsic_curvature(){ 00061 00062 // Components of shift_auto with respect to the Cartesian triad 00063 // (d/dx, d/dy, d/dz) of the mapping : 00064 Tenseur shift_auto_local = shift_auto ; 00065 shift_auto_local.change_triad( mp.get_bvect_cart() ) ; 00066 00067 // Gradient (partial derivatives with respect to the Cartesian coordinates 00068 // of the mapping) 00069 // D_j N^i 00070 00071 Tenseur dn = shift_auto_local.gradient() ; 00072 00073 // Return to the absolute reference frame 00074 dn.change_triad(ref_triad) ; 00075 00076 // Trace of D_j N^i = divergence of N^i : 00077 Tenseur divn = contract(dn, 0, 1) ; 00078 00079 // Computation of A^2 K^{ij} 00080 // See Eq (49) from Gourgoulhon et al. (2001) 00081 // ----------------------------------------- 00082 tkij_auto.set_etat_qcq() ; 00083 for (int i=0; i<3; i++) { 00084 for (int j=i; j<3; j++) { 00085 tkij_auto.set(i, j) = dn(i, j) + dn(j, i) ; 00086 } 00087 tkij_auto.set(i, i) -= double(2) /double(3) * divn() ; 00088 } 00089 00090 tkij_auto = - 0.5 * tkij_auto / nnn ; 00091 00092 tkij_auto.set_std_base() ; 00093 00094 // Computation of A^2 K_{ij} K^{ij} 00095 // -------------------------------- 00096 00097 akcar_auto.set_etat_qcq() ; 00098 00099 akcar_auto.set() = 0 ; 00100 00101 akcar_auto.set_std_base() ; 00102 00103 for (int i=0; i<3; i++) { 00104 for (int j=0; j<3; j++) { 00105 00106 akcar_auto.set() += tkij_auto(i, j) % tkij_auto(i, j) ; 00107 00108 } 00109 } 00110 00111 akcar_auto.set_std_base() ; 00112 akcar_auto = a_car % akcar_auto ; 00113 00114 00115 } 00116
1.4.6