et_bin_nsbh_upmetr.C

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 }

Generated on Tue Feb 7 01:35:16 2012 for LORENE by  doxygen 1.4.6