00001 /* 00002 * Function Star_rot_Dirac::update_metric 00003 * 00004 * (see file star_rot_dirac.h for documentation). 00005 * 00006 */ 00007 00008 /* 00009 * Copyright (c) 2005 Lap-Ming Lin & Jerome Novak 00010 * 00011 * This file is part of LORENE. 00012 * 00013 * LORENE is free software; you can redistribute it and/or modify 00014 * it under the terms of the GNU General Public License version 2 00015 * as published by the Free Software Foundation. 00016 * 00017 * LORENE is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU General Public License 00023 * along with LORENE; if not, write to the Free Software 00024 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00025 * 00026 */ 00027 00028 char strot_dirac_upmetr_C[] = "$Header: /cvsroot/Lorene/C++/Source/Star/strot_dirac_upmetr.C,v 1.3 2005/03/25 13:47:26 j_novak Exp $" ; 00029 00030 /* 00031 * $Id: strot_dirac_upmetr.C,v 1.3 2005/03/25 13:47:26 j_novak Exp $ 00032 * $Log: strot_dirac_upmetr.C,v $ 00033 * Revision 1.3 2005/03/25 13:47:26 j_novak 00034 * Added the update of log(Q). 00035 * 00036 * Revision 1.2 2005/02/17 17:30:55 f_limousin 00037 * Change the name of some quantities to be consistent with other classes 00038 * (for instance nnn is changed to nn, shift to beta, beta to lnq...) 00039 * 00040 * Revision 1.1 2005/01/31 08:51:48 j_novak 00041 * New files for rotating stars in Dirac gauge (still under developement). 00042 * 00043 * 00044 * $Header: /cvsroot/Lorene/C++/Source/Star/strot_dirac_upmetr.C,v 1.3 2005/03/25 13:47:26 j_novak Exp $ 00045 * 00046 */ 00047 00048 00049 // Lorene headers 00050 #include "star_rot_dirac.h" 00051 00052 #include "utilitaires.h" 00053 #include "unites.h" 00054 00055 void Star_rot_Dirac::update_metric(){ 00056 00057 // Lapse function 00058 // --------------- 00059 00060 nn = exp( logn ) ; 00061 00062 nn.std_spectral_base() ; // set the bases for spectral expansions 00063 00064 00065 // Quantity log(Q) 00066 //---------------- 00067 00068 lnq = log(qqq) ; 00069 lnq.std_spectral_base() ; 00070 00071 // Comformal factor $\Psi^4$ 00072 // ------------------------- 00073 00074 psi4 = (qqq * qqq) / (nn * nn) ; 00075 00076 psi4.std_spectral_base() ; 00077 00078 // Factor $\Psi^2$ 00079 // ---------------- 00080 00081 psi2 = sqrt( psi4 ) ; 00082 00083 psi2.std_spectral_base() ; 00084 00085 // Quantity $ln( \Psi )$ 00086 // --------------------- 00087 00088 ln_psi = 0.5*log( psi2 ) ; 00089 00090 ln_psi.std_spectral_base() ; 00091 00092 // Conformal metric $\tilde{\gamma}$ 00093 // -------------------------------------- 00094 00095 tgamma = flat.con() + hh ; // contravariant representation 00096 // $\tilde{\gamma}^{ij}$ 00097 00098 // Physical metric $\gamma$ 00099 // ----------------------------- 00100 00101 gamma = tgamma.con() / psi4 ; // contravariant representation 00102 // $\gamma^{ij}$ 00103 00104 00105 // Quantities $A^{ij}$, $\tilde{A}_{ij}, and $\tilde{A}_{ij} A^{ij}$ 00106 // ----------------------------------------------------------------- 00107 00108 aa = ( beta.ope_killing_conf(flat) - hh.derive_lie(beta)) 00109 / ( 2*nn ) ; 00110 00111 taa = aa.up_down(tgamma) ; 00112 00113 aa_quad = contract(taa, 0, 1, aa, 0, 1) ; 00114 00115 aa_quad.std_spectral_base() ; 00116 00117 00118 // The derived quantities are no longer up to date : 00119 // ------------------------------------------------ 00120 00121 del_deriv() ; 00122 00123 } 00124 00125 00126
1.4.6