00001 /* 00002 * Methods Et_bin_nsbh::update_metric 00003 * 00004 * (see file et_bin_nsbh.h for documentation). 00005 * 00006 */ 00007 00008 /* 00009 * Copyright (c) 2003 Philippe Grandclement 00010 * 2003 Keisuke Taniguchi 00011 * 00012 * This file is part of LORENE. 00013 * 00014 * LORENE is free software; you can redistribute it and/or modify 00015 * it under the terms of the GNU General Public License version 2 00016 * as published by the Free Software Foundation. 00017 * 00018 * LORENE is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License 00024 * along with LORENE; if not, write to the Free Software 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 * 00027 */ 00028 00029 char et_bin_nsbh_upmetr_C[] = "$Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_nsbh_upmetr.C,v 1.3 2007/04/24 20:14:45 f_limousin Exp $" ; 00030 00031 /* 00032 * $Id: et_bin_nsbh_upmetr.C,v 1.3 2007/04/24 20:14:45 f_limousin Exp $ 00033 * $Log: et_bin_nsbh_upmetr.C,v $ 00034 * Revision 1.3 2007/04/24 20:14:45 f_limousin 00035 * Implementation of Dirichlet and Neumann BC for the lapse 00036 * 00037 * Revision 1.2 2005/08/29 15:10:17 p_grandclement 00038 * Addition of things needed : 00039 * 1) For BBH with different masses 00040 * 2) Provisory files for the mixted binaries (Bh and NS) : THIS IS NOT 00041 * WORKING YET !!! 00042 * 00043 * Revision 1.1 2003/10/24 12:28:39 k_taniguchi 00044 * Method of update metric for the BH companion 00045 * 00046 * 00047 * 00048 * $Header: /cvsroot/Lorene/C++/Source/Etoile/et_bin_nsbh_upmetr.C,v 1.3 2007/04/24 20:14:45 f_limousin Exp $ 00049 * 00050 */ 00051 00052 // Lorene headers 00053 #include "et_bin_nsbh.h" 00054 #include "bhole.h" 00055 00056 //----------------------------------// 00057 // Version a BH companion // 00058 //----------------------------------// 00059 00060 void Et_bin_nsbh::update_metric(const Bhole& comp) { 00061 00062 // Computation of quantities coming from the companion 00063 // --------------------------------------------------- 00064 00065 // Computes N_comp ---> stored in logn_comp 00066 if ( (comp.get_n_auto()).get_etat() == ETATZERO ) { 00067 n_comp.set_etat_zero() ; 00068 } 00069 else{ 00070 n_comp.set_etat_qcq() ; 00071 (n_comp.set()).import( comp.get_n_auto()() ) ; 00072 n_comp.set_std_base() ; // set the bases for spectral expansions 00073 } 00074 00075 00076 // Computes Psi_comp ---> stored in beta_comp 00077 if ( (comp.get_psi_auto()).get_etat() == ETATZERO ) { 00078 confpsi_comp.set_etat_zero() ; 00079 } 00080 else{ 00081 confpsi_comp.set_etat_qcq() ; 00082 (confpsi_comp.set()).import( comp.get_psi_auto()() ) ; 00083 confpsi_comp.set_std_base() ; // set the bases for spectral expansions 00084 } 00085 00086 00087 // Computes N^i_comp ---> stored in shift_comp 00088 if ( (comp.get_shift_auto()).get_etat() == ETATZERO ) { 00089 shift_comp.set_etat_zero() ; 00090 } 00091 else{ 00092 shift_comp.set_etat_qcq() ; 00093 00094 (shift_comp.set(0)).import( comp.get_shift_auto()(0) ) ; // N^x antisym 00095 (shift_comp.set(1)).import( comp.get_shift_auto()(1) ) ; // N^y sym. 00096 (shift_comp.set(2)).import( comp.get_shift_auto()(2) ) ; // N^z anisym 00097 00098 shift_comp.set_std_base() ; // set the bases for spectral expansions 00099 } 00100 00101 // Lapse function N 00102 // ---------------- 00103 00104 nnn = n_auto + n_comp ; 00105 00106 // Conformal factor confpsi 00107 // ------------------------ 00108 00109 confpsi = confpsi_auto + confpsi_comp ; 00110 00111 confpsi.set_std_base() ; // set the bases for spectral expansions 00112 00113 // Conformal factor A^2 00114 // --------------------- 00115 00116 a_car = pow(confpsi, 4.); 00117 a_car.set_std_base() ; // set the bases for spectral expansions 00118 00119 // Shift vector N^i 00120 // ---------------- 00121 00122 shift = shift_auto + shift_comp ; 00123 00124 // Derivatives of metric coefficients 00125 // ---------------------------------- 00126 00127 // ... (d/dX,d/dY,d/dZ)(n_auto) : 00128 d_n_auto = n_auto.gradient() ; // (d/dx, d/dy, d/dz) 00129 d_n_auto.change_triad(ref_triad) ; // --> (d/dX, d/dY, d/dZ) 00130 00131 // ... (d/dX,d/dY,d/dZ)(confpsi_auto) : 00132 d_confpsi_auto = confpsi_auto.gradient() ; // (d/dx, d/dy, d/dz) 00133 d_confpsi_auto.change_triad(ref_triad) ; // --> (d/dX, d/dY, d/dZ) 00134 00135 // The derived quantities are obsolete 00136 // ----------------------------------- 00137 00138 del_deriv() ; 00139 }
1.4.6