strot_dirac_diff_hydro.C

00001 /*
00002  *  Function Star_rot_Dirac_diff::hydro_euler
00003  *
00004  *    (see file star_rot_dirac.h for documentation).
00005  *
00006  */
00007 
00008 /*
00009  *   Copyright (c) 2005 Motoyuki Saijo
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_diff_hydro_C[] = "$Header: /cvsroot/Lorene/C++/Source/Star/strot_dirac_diff_hydro.C,v 1.1 2005/08/13 19:49:42 m_saijo Exp $" ;
00029 
00030 /*
00031  * $Header: /cvsroot/Lorene/C++/Source/Star/strot_dirac_diff_hydro.C,v 1.1 2005/08/13 19:49:42 m_saijo Exp $
00032  *
00033  */
00034 
00035 
00036 // C headers
00037 #include<math.h>
00038 #include<assert.h>
00039 
00040 // Lorene headers
00041 #include"star_rot_dirac_diff.h"
00042 
00043 void Star_rot_Dirac_diff::hydro_euler(){
00044 
00045   // u_euler (fluid 3-velocity w.r.t. the Eulerian frame)
00046   // -----------------------------------------------------
00047 
00048 
00049   u_euler.set(1).set_etat_zero() ;
00050   u_euler.set(2).set_etat_zero() ;
00051 
00052   u_euler.set(3) = omega_field ;
00053   u_euler.set(3).std_spectral_base() ;
00054   u_euler.set(3).mult_rsint() ;
00055   u_euler.set(3) += beta(3) ;
00056 
00057   u_euler = u_euler / nn ;
00058 
00059   // v2 (square of the norm of u_euler)
00060   // ----------------------------------
00061 
00062   v2 = contract(contract(gamma.cov(), 0, u_euler, 0), 0, u_euler, 0) ;
00063 
00064 
00065   // gam_euler (Lorentz factor between the fluid and Eulerian observers)
00066   // -------------------------------------------------------------------
00067 
00068   gam_euler = 1. / sqrt(1. - v2) ; 
00069 
00070   gam_euler.std_spectral_base() ;
00071 
00072 
00073   // ener_euler (energy density w.r.t. the Eulerian observer)
00074   // ------------------------------------------------------
00075 
00076   ener_euler = gam_euler*gam_euler*(ener + press) - press ;
00077 
00078   ener_euler.std_spectral_base() ;
00079 
00080 
00081   // j_euler (momentum density 3-vector w.r.t. the Eulerian observer)
00082   // ----------------------------------------------------------------
00083 
00084   j_euler = (ener_euler + press)*u_euler ;
00085 
00086   j_euler.std_spectral_base() ;
00087 
00088 
00089   // s_euler (trace of the stress tensor w.r.t. the Eulerian observer)
00090   // ----------------------------------------------------------------
00091 
00092   s_euler = (ener_euler + press)*v2 + 3*press ;
00093 
00094   s_euler.std_spectral_base() ;
00095 
00096 
00097   // stress_euler (stress tensor w.r.t. the Eulerian observer)
00098   // ---------------------------------------------------------
00099 
00100 
00101   stress_euler = (ener_euler + press)*u_euler*u_euler + press*gamma.con() ;
00102 
00103   stress_euler.std_spectral_base() ;
00104 
00105 
00106   // The derived quantities are obsolete
00107   // ------------------------------------
00108 
00109   del_deriv() ;
00110 
00111 
00112 }

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