[Commits] [svn:einsteintoolkit] GRHydro/trunk/ (Rev. 310)

bcmsma at astro.rit.edu bcmsma at astro.rit.edu
Tue Jan 3 16:13:04 CST 2012


User: bmundim
Date: 2012/01/03 04:13 PM

Added:
 /trunk/src/
  GRHydro_CalcBcom.F90

Modified:
 /trunk/
  schedule.ccl
 /trunk/src/
  make.code.defn

Log:
 Add a routine to calculate mag pressure/comoving field
     
     * When Tmunu is not calculated, ie when no storage is selected,
     the comoving magnetic field/magnetic pressure wasn't calculated
     at all. This commit allows that now.

File Changes:

Directory: /trunk/src/
======================

File [added]: GRHydro_CalcBcom.F90
Delta lines: +66 -0
===================================================================
--- trunk/src/GRHydro_CalcBcom.F90	                        (rev 0)
+++ trunk/src/GRHydro_CalcBcom.F90	2012-01-03 22:13:04 UTC (rev 310)
@@ -0,0 +1,66 @@
+ /*@@
+   @file      GRHydro_CalcBcom.F90
+   @date      Jan 01, 2012
+   @author    Bruno Mundim
+   @histpry
+    Based on GRHydro_TmunuM.F90 file.
+   @desc 
+     The calculation of the magnetic pressure and the comoving magnetic
+     field.
+   @enddesc 
+ @@*/
+#include "cctk.h"
+#include "cctk_Arguments.h"
+
+#define velx(i,j,k) vel(i,j,k,1)
+#define vely(i,j,k) vel(i,j,k,2)
+#define velz(i,j,k) vel(i,j,k,3)
+#define Bvecx(i,j,k) Bvec(i,j,k,1)
+#define Bvecy(i,j,k) Bvec(i,j,k,2)
+#define Bvecz(i,j,k) Bvec(i,j,k,3)
+#define bcomx(i,j,k) bcom(i,j,k,1)
+#define bcomy(i,j,k) bcom(i,j,k,2)
+#define bcomz(i,j,k) bcom(i,j,k,3)
+
+ subroutine GRHydro_CalcBcom(CCTK_ARGUMENTS)
+
+   implicit none
+
+   DECLARE_CCTK_ARGUMENTS
+
+   CCTK_REAL :: velxlow, velylow, velzlow
+   CCTK_REAL :: Bvecxlow,Bvecylow,Bveczlow
+   CCTK_REAL :: bdotv,b2,bxlow,bylow,bzlow,btlow,dum
+   CCTK_INT :: i,j,k
+
+   if(stress_energy_state.ne.0) then
+     return
+   end if
+
+   !$OMP PARALLEL DO PRIVATE(i,j,k,velxlow, velylow, velzlow,&
+   !$OMP Bvecxlow,Bvecylow,Bveczlow, bdotv,dum,b2,bxlow,bylow,bzlow)
+
+   do k = 1, cctk_lsh(3)
+     do j = 1, cctk_lsh(2)
+       do i = 1, cctk_lsh(1)
+
+          call calc_vlow_blow(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
+               gyy(i,j,k),gyz(i,j,k),gzz(i,j,k), &
+               velx(i,j,k),vely(i,j,k),velz(i,j,k),Bvecx(i,j,k),Bvecy(i,j,k),Bvecz(i,j,k), &
+               velxlow,velylow,velzlow,Bvecxlow,Bvecylow,Bveczlow, &
+               bdotv,b2,dum,dum,bxlow,bylow,bzlow)
+
+           bcom_sq(i,j,k) = b2 
+           bcom0(i,j,k) = w_lorentz(i,j,k)*bdotv/alp(i,j,k)
+           bcomx(i,j,k) = Bvecx(i,j,k)/w_lorentz(i,j,k) + bcom0(i,j,k)*(alp(i,j,k)*velx(i,j,k)-betax(i,j,k))
+           bcomy(i,j,k) = Bvecy(i,j,k)/w_lorentz(i,j,k) + bcom0(i,j,k)*(alp(i,j,k)*vely(i,j,k)-betay(i,j,k))
+           bcomz(i,j,k) = Bvecz(i,j,k)/w_lorentz(i,j,k) + bcom0(i,j,k)*(alp(i,j,k)*velz(i,j,k)-betaz(i,j,k))
+
+       end do
+     end do
+   end do
+   !$OMP END PARALLEL DO
+
+   return
+ 
+ end subroutine GRHydro_CalcBcom

File [modified]: make.code.defn
Delta lines: +1 -0
===================================================================
--- trunk/src/make.code.defn	2011-12-07 22:33:23 UTC (rev 309)
+++ trunk/src/make.code.defn	2012-01-03 22:13:04 UTC (rev 310)
@@ -5,6 +5,7 @@
 
 SRCS = 	Utils.F90 \
 	GRHydro_Boundaries.F90 \
+	GRHydro_CalcBcom.F90 \
 	GRHydro_CalcUpdate.F90 \
 	GRHydro_Con2Prim.F90 \
    GRHydro_DivergenceClean.F90 \

Directory: /trunk/
==================

File [modified]: schedule.ccl
Delta lines: +10 -0
===================================================================
--- trunk/schedule.ccl	2011-12-07 22:33:23 UTC (rev 309)
+++ trunk/schedule.ccl	2012-01-03 22:13:04 UTC (rev 310)
@@ -1139,6 +1139,16 @@
   {
     LANG: Fortran
   } "Compute the energy-momentum tensor - MHD version"
+# bcom is already calculated in GRHydro_TmunuM. 
+# When Tmunu is not calculated, then the following 
+# routine is used to evaluate bcom, if requested.
+  if (calculate_bcom){
+    schedule GRHydro_CalcBcom IN HydroBase_PostStep
+    {
+      LANG: Fortran
+    } "Compute comoving magnetic field, pressure, etc..."
+  }
+
 } else {
   schedule GRHydro_Tmunu IN AddToTmunu 
   {



More information about the Commits mailing list