[Commits] [svn:einsteintoolkit] GRHydro/trunk/ (Rev. 635)
rhaas at tapir.caltech.edu
rhaas at tapir.caltech.edu
Tue Apr 15 14:49:56 CDT 2014
User: rhaas
Date: 2014/04/15 02:49 PM
Modified:
/trunk/
schedule.ccl
/trunk/src/
GRHydro_Analysis.F90, GRHydro_Boundaries.F90, GRHydro_CalcUpdate.F90, GRHydro_UpdateMask.F90
Log:
GRHydro: clean up handling of Avec evolution and boundaries
Remove almost empty Analysis_Init routine, apply boundary conditions
consistently.
File Changes:
Directory: /trunk/src/
======================
File [modified]: GRHydro_Analysis.F90
Delta lines: +70 -55
===================================================================
--- trunk/src/GRHydro_Analysis.F90 2014-04-15 19:49:52 UTC (rev 634)
+++ trunk/src/GRHydro_Analysis.F90 2014-04-15 19:49:55 UTC (rev 635)
@@ -5,18 +5,6 @@
#include "cctk_Functions.h"
#include "SpaceMask.h"
-subroutine GRHydro_Analysis_Init(CCTK_ARGUMENTS)
-
- implicit none
-
- DECLARE_CCTK_ARGUMENTS
- DECLARE_CCTK_PARAMETERS
- DECLARE_CCTK_FUNCTIONS
-
- divB = 0.0d0
-
-end subroutine GRHydro_Analysis_Init
-
subroutine GRHydro_CalcDivB(CCTK_ARGUMENTS)
implicit none
@@ -27,56 +15,83 @@
CCTK_INT :: i,j,k,itracer
CCTK_REAL :: idx, idy, idz, Bcons_l1, Bcons_r1, Bcons_l2, Bcons_r2, Bcons_l3, Bcons_r3
+ logical :: do_Avec, do_Bcons
+
idx = 1.d0 / CCTK_DELTA_SPACE(1)
idy = 1.d0 / CCTK_DELTA_SPACE(2)
idz = 1.d0 / CCTK_DELTA_SPACE(3)
- !$OMP PARALLEL DO PRIVATE(i,j,k,itracer,Bcons_l1,Bcons_r1,Bcons_l2,Bcons_r2,Bcons_l3,Bcons_r3)
- do k = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(3) - GRHydro_stencil ! we need to compute Evec on all faces/edges where the fluxes are defined
- do j = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(2) - GRHydro_stencil
- do i = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(1) - GRHydro_stencil
+ do_Avec = CCTK_EQUALS(Bvec_evolution_method,"GRHydro_Avec")
+ do_Bcons = CCTK_EQUALS(Bvec_evolution_method,"GRHydro")
- if(evolve_mhd.ne.0) then
- if(track_divB.ne.0) then
- if(transport_constraints.ne.0) then
- ! edge based divergence (see WhiskyMHD & Bruno's thesis, Eq. 7.27)
- divB(i,j,k) = &
- 0.25d0*(Bcons(i+1,j,k,1)-Bcons(i,j,k,1)+ &
- Bcons(i+1,j+1,k,1)-Bcons(i,j+1,k,1)+ &
- Bcons(i+1,j,k+1,1)-Bcons(i,j,k+1,1)+ &
- Bcons(i+1,j+1,k+1,1)-Bcons(i,j+1,k+1,1))*idx + &
- 0.25d0*(Bcons(i,j+1,k,2)-Bcons(i,j,k,2)+ &
- Bcons(i+1,j+1,k,2)-Bcons(i+1,j,k,2)+ &
- Bcons(i,j+1,k+1,2)-Bcons(i,j,k+1,2)+ &
- Bcons(i+1,j+1,k+1,2)-Bcons(i+1,j,k+1,2))*idy + &
- 0.25d0*(Bcons(i,j,k+1,3)-Bcons(i,j,k,3)+ &
- Bcons(i+1,j,k+1,3)-Bcons(i+1,j,k,3)+ &
- Bcons(i,j+1,k+1,3)-Bcons(i,j+1,k,3)+ &
- Bcons(i+1,j+1,k+1,3)-Bcons(i+1,j+1,k,3))*idz
- else
- Bcons_l1 = 0.5d0 * (Bcons(i,j,k,1) + &
- Bcons(i-1,j,k,1))
- Bcons_l2 = 0.5d0 * (Bcons(i,j,k,2) + &
- Bcons(i,j-1,k,2))
- Bcons_l3 = 0.5d0 * (Bcons(i,j,k,3) + &
- Bcons(i,j,k-1,3))
- Bcons_r1 = 0.5d0 * (Bcons(i,j,k,1) + &
- Bcons(i+1,j,k,1))
- Bcons_r2 = 0.5d0 * (Bcons(i,j,k,2) + &
- Bcons(i,j+1,k,2))
- Bcons_r3 = 0.5d0 * (Bcons(i,j,k,3) + &
- Bcons(i,j,k+1,3))
-
- divB(i,j,k) = (Bcons_l1 - Bcons_r1) * idx + (Bcons_l2 - Bcons_r2) * idy + (Bcons_l3 - Bcons_r3) * idz
+ divB = 0d0
- endif
- endif
- endif
-
- enddo
- enddo
+ !$OMP PARALLEL DO PRIVATE(i,j,k,itracer,Bcons_l1,Bcons_r1,Bcons_l2,Bcons_r2,Bcons_l3,Bcons_r3)
+ do k = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(3) - GRHydro_stencil ! we need to compute Evec on all faces/edges where the fluxes are defined
+ do j = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(2) - GRHydro_stencil
+ do i = GRHydro_stencil + 1 - transport_constraints, cctk_lsh(1) - GRHydro_stencil
+
+ if(evolve_mhd.ne.0) then
+ if(track_divB.ne.0) then
+ if(transport_constraints.ne.0) then
+ ! edge based divergence (see WhiskyMHD & Bruno's thesis, Eq. 7.27)
+ divB(i,j,k) = &
+ 0.25d0*(Bcons(i+1,j,k,1)-Bcons(i,j,k,1)+ &
+ Bcons(i+1,j+1,k,1)-Bcons(i,j+1,k,1)+ &
+ Bcons(i+1,j,k+1,1)-Bcons(i,j,k+1,1)+ &
+ Bcons(i+1,j+1,k+1,1)-Bcons(i,j+1,k+1,1))*idx + &
+ 0.25d0*(Bcons(i,j+1,k,2)-Bcons(i,j,k,2)+ &
+ Bcons(i+1,j+1,k,2)-Bcons(i+1,j,k,2)+ &
+ Bcons(i,j+1,k+1,2)-Bcons(i,j,k+1,2)+ &
+ Bcons(i+1,j+1,k+1,2)-Bcons(i+1,j,k+1,2))*idy + &
+ 0.25d0*(Bcons(i,j,k+1,3)-Bcons(i,j,k,3)+ &
+ Bcons(i+1,j,k+1,3)-Bcons(i+1,j,k,3)+ &
+ Bcons(i,j+1,k+1,3)-Bcons(i,j+1,k,3)+ &
+ Bcons(i+1,j+1,k+1,3)-Bcons(i+1,j+1,k,3))*idz
+ else if(do_Avec) then
+ Bcons_l1 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,1) + &
+ sdetg(i-1,j,k)*Bvec(i-1,j,k,1))
+ Bcons_l2 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,2) + &
+ sdetg(i,j-1,k)*Bvec(i,j-1,k,2))
+ Bcons_l3 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,3) + &
+ sdetg(i,j,k-1)*Bvec(i,j,k-1,3))
+ Bcons_r1 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,1) + &
+ sdetg(i+1,j,k)*Bvec(i+1,j,k,1))
+ Bcons_r2 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,2) + &
+ sdetg(i,j+1,k)*Bvec(i,j+1,k,2))
+ Bcons_r3 = 0.5d0 * (sdetg(i,j,k)*Bvec(i,j,k,3) + &
+ sdetg(i,j,k+1)*Bvec(i,j,k+1,3))
+
+ divB(i,j,k) = (Bcons_l1 - Bcons_r1) * idx + (Bcons_l2 - Bcons_r2) * idy + (Bcons_l3 - Bcons_r3) * idz
+
+ else if(do_Bcons) then
+ Bcons_l1 = 0.5d0 * (Bcons(i,j,k,1) + &
+ Bcons(i-1,j,k,1))
+ Bcons_l2 = 0.5d0 * (Bcons(i,j,k,2) + &
+ Bcons(i,j-1,k,2))
+ Bcons_l3 = 0.5d0 * (Bcons(i,j,k,3) + &
+ Bcons(i,j,k-1,3))
+ Bcons_r1 = 0.5d0 * (Bcons(i,j,k,1) + &
+ Bcons(i+1,j,k,1))
+ Bcons_r2 = 0.5d0 * (Bcons(i,j,k,2) + &
+ Bcons(i,j+1,k,2))
+ Bcons_r3 = 0.5d0 * (Bcons(i,j,k,3) + &
+ Bcons(i,j,k+1,3))
+
+ divB(i,j,k) = (Bcons_l1 - Bcons_r1) * idx + (Bcons_l2 - Bcons_r2) * idy + (Bcons_l3 - Bcons_r3) * idz
+
+ else
+ call CCTK_ERROR("Internal error. Do now know how to compute divB")
+ STOP
+
+ endif
+ endif
+ endif
+
enddo
- !$OMP END PARALLEL DO
+ enddo
+ enddo
+ !$OMP END PARALLEL DO
end subroutine GRHydro_CalcDivB
File [modified]: GRHydro_Boundaries.F90
Delta lines: +86 -149
===================================================================
--- trunk/src/GRHydro_Boundaries.F90 2014-04-15 19:49:52 UTC (rev 634)
+++ trunk/src/GRHydro_Boundaries.F90 2014-04-15 19:49:55 UTC (rev 635)
@@ -165,199 +165,136 @@
@@*/
-subroutine GRHydro_Boundaries(CCTK_ARGUMENTS)
-
+subroutine GRHydro_RegisterBoundariesWithMethod(CCTK_ARGUMENTS, bcname)
+
implicit none
-
+
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
-
+
+ character(len=*), INTENT(IN) :: bcname
+
integer, dimension(3) :: sw
integer :: ierr
CCTK_INT :: GRHydro_UseGeneralCoordinates, general_coordinates
CCTK_INT, parameter :: faces=CCTK_ALL_FACES
CCTK_INT, parameter :: ione=1
+ logical :: do_Avec, do_Bcons
ierr = 0
sw = GRHydro_stencil
general_coordinates = GRHydro_UseGeneralCoordinates(cctkGH)
+ do_Avec = CCTK_EQUALS(Bvec_evolution_method,"GRHydro_Avec")
+ do_Bcons = CCTK_EQUALS(Bvec_evolution_method,"GRHydro")
- if (verbose.eq.1) call CCTK_INFO("Selecting conserved BC (and primitive BC if selected)")
-
-!!$Flat boundaries if required
-
- if (CCTK_EQUALS(bound,"flat")) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::dens", bcname)
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::tau", bcname)
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::scon", bcname)
+ if (sync_conserved_only .eq. 0) then
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::dens", "Flat")
+ "HydroBase::w_lorentz", bcname)
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::tau", "Flat")
+ "HydroBase::rho", bcname)
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::scon", "Flat")
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::w_lorentz", "Flat")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::rho", "Flat")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::press", "Flat")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::eps", "Flat")
- if (general_coordinates .ne. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::lvel", "Flat")
- else
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::vel", "Flat")
- endif
- endif
- if(evolve_mhd.ne.0) then
- if (sync_conserved_only .eq. 0) then
- if (general_coordinates .ne. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::lBvec", "Flat")
- else
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Bvec", "Flat")
- endif
- endif
+ "HydroBase::press", bcname)
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::eps", bcname)
+ if (general_coordinates .ne. 0) then
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::Bcons", "Flat")
- if(clean_divergence.ne.0) then
+ "GRHydro::lvel", bcname)
+ else
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::vel", bcname)
+ endif
+ endif
+ if(evolve_mhd.ne.0) then
+ if (sync_conserved_only .eq. 0) then
+ if (general_coordinates .ne. 0) then
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::psidc", "Flat")
+ "GRHydro::lBvec", bcname)
+ else
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::Bvec", bcname)
endif
- endif
+ endif
+ if(do_Bcons) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::Bcons", bcname)
+ end if
+ if (do_Avec) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::Avec", bcname)
+ endif
+ if(clean_divergence.ne.0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::psidc", bcname)
+ endif
+ endif
- if (CCTK_EQUALS(Bvec_evolution_method, "GRHydro_Avec")) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Avec", "Flat")
- endif
- if(evolve_tracer.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::GRHydro_tracers", "Flat")
- endif
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::GRHydro_cons_tracers", "Flat")
+ if(evolve_tracer.ne.0) then
+ if (sync_conserved_only .eq. 0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_tracers", bcname)
endif
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_cons_tracers", bcname)
+ endif
- if(evolve_y_e.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Y_e", "Flat")
- endif
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::Y_e_con", "Flat")
+ if(evolve_y_e.ne.0) then
+ if (sync_conserved_only .eq. 0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::Y_e", bcname)
endif
-
- if(evolve_temper.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::temperature", "Flat")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::entropy", "Flat")
- endif
- endif
-
-
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::Y_e_con", bcname)
endif
- if (CCTK_EQUALS(bound,"none")) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::dens", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::tau", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::scon", "None")
-
+ if(evolve_temper.ne.0) then
if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::w_lorentz", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::rho", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::press", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::eps", "None")
- if (general_coordinates .ne. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::lvel", "None")
- else
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::vel", "None")
- endif
- endif
-
- if(evolve_mhd.ne.0) then
- if (sync_conserved_only .eq. 0) then
- if (general_coordinates .ne. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::lBvec", "None")
- else
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Bvec", "None")
- endif
- endif
ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::Bcons", "None")
- if(clean_divergence.ne.0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::psidc", "None")
- endif
+ "HydroBase::temperature", bcname)
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::entropy", bcname)
endif
+ endif
- if (CCTK_EQUALS(Bvec_evolution_method, "GRHydro_Avec")) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Avec", "None")
- if (general_coordinates .ne. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::lBvec", "Flat")
- else
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Bvec", "Flat")
- endif
- endif
+ if (ierr < 0) call CCTK_WARN(0, "problems with applying the chosen boundary condition")
- if(evolve_tracer.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::GRHydro_tracers", "None")
- endif
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::GRHydro_cons_tracers", "None")
- endif
+end subroutine
- if(evolve_y_e.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::Y_e", "None")
- endif
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "GRHydro::Y_e_con", "None")
- endif
+subroutine GRHydro_Boundaries(CCTK_ARGUMENTS)
- if(evolve_temper.ne.0) then
- if (sync_conserved_only .eq. 0) then
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::temperature", "None")
- ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
- "HydroBase::entropy", "None")
- endif
- endif
+ implicit none
+ DECLARE_CCTK_ARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+ DECLARE_CCTK_FUNCTIONS
+
+ if (verbose.eq.1) call CCTK_INFO("Selecting conserved BC (and primitive BC if selected)")
+
+!!$Flat boundaries if required
+ if (CCTK_EQUALS(bound,"flat")) then
+ call GRHydro_RegisterBoundariesWithMethod(CCTK_PASS_FTOF, "Flat")
endif
+!!$None boundaries if required
+ if (CCTK_EQUALS(bound,"none")) then
+ call GRHydro_RegisterBoundariesWithMethod(CCTK_PASS_FTOF, "None")
+ endif
+
+!!$Scalar boundaries if required
if (CCTK_EQUALS(bound,"scalar")) then
call CCTK_WARN(0, "Until somebody uses this I see no reason to support it")
end if
- if (ierr < 0) call CCTK_WARN(0, "problems with applying the chosen boundary condition")
-
end subroutine GRHydro_Boundaries
File [modified]: GRHydro_CalcUpdate.F90
Delta lines: +16 -17
===================================================================
--- trunk/src/GRHydro_CalcUpdate.F90 2014-04-15 19:49:52 UTC (rev 634)
+++ trunk/src/GRHydro_CalcUpdate.F90 2014-04-15 19:49:55 UTC (rev 635)
@@ -108,24 +108,23 @@
taurhs(i,j,k) = taurhs(i,j,k) + &
(alp_l * tauflux(i-xoffset,j-yoffset,k-zoffset) - &
alp_r * tauflux(i,j,k)) * idx
-
if(evolve_mhd.ne.0) then
- if(transport_constraints.ne.1) then
- Bconsrhs(i,j,k,1) = Bconsrhs(i,j,k,1) + &
- (alp_l * Bconsxflux(i-xoffset,j-yoffset,k-zoffset) - &
- alp_r * Bconsxflux(i,j,k)) * idx
- Bconsrhs(i,j,k,2) = Bconsrhs(i,j,k,2) + &
- (alp_l * Bconsyflux(i-xoffset,j-yoffset,k-zoffset) - &
- alp_r * Bconsyflux(i,j,k)) * idx
- Bconsrhs(i,j,k,3) = Bconsrhs(i,j,k,3) + &
- (alp_l * Bconszflux(i-xoffset,j-yoffset,k-zoffset) - &
- alp_r * Bconszflux(i,j,k)) * idx
- endif
- if(clean_divergence.ne.0) then
- psidcrhs(i,j,k) = psidcrhs(i,j,k) + &
- (alp_l * psidcflux(i-xoffset,j-yoffset,k-zoffset) - &
- alp_r * psidcflux(i,j,k)) * idx
- endif
+ if(transport_constraints.eq.0) then
+ Bconsrhs(i,j,k,1) = Bconsrhs(i,j,k,1) + &
+ (alp_l * Bconsxflux(i-xoffset,j-yoffset,k-zoffset) - &
+ alp_r * Bconsxflux(i,j,k)) * idx
+ Bconsrhs(i,j,k,2) = Bconsrhs(i,j,k,2) + &
+ (alp_l * Bconsyflux(i-xoffset,j-yoffset,k-zoffset) - &
+ alp_r * Bconsyflux(i,j,k)) * idx
+ Bconsrhs(i,j,k,3) = Bconsrhs(i,j,k,3) + &
+ (alp_l * Bconszflux(i-xoffset,j-yoffset,k-zoffset) - &
+ alp_r * Bconszflux(i,j,k)) * idx
+ endif
+ if(clean_divergence.ne.0) then
+ psidcrhs(i,j,k) = psidcrhs(i,j,k) + &
+ (alp_l * psidcflux(i-xoffset,j-yoffset,k-zoffset) - &
+ alp_r * psidcflux(i,j,k)) * idx
+ endif
endif
if (evolve_tracer .ne. 0) then
File [modified]: GRHydro_UpdateMask.F90
Delta lines: +6 -0
===================================================================
--- trunk/src/GRHydro_UpdateMask.F90 2014-04-15 19:49:52 UTC (rev 634)
+++ trunk/src/GRHydro_UpdateMask.F90 2014-04-15 19:49:55 UTC (rev 635)
@@ -65,6 +65,9 @@
if (evolve_Bvec) then
Bconsrhs(i,j,k,:) = 0.0d0
endif
+ if (evolve_Avec) then
+ Avecrhs(i,j,k,:) = 0.0d0
+ endif
! TODO: Need to set Avecrhs and Aphirhs to zero for centered / or staggered case if vector potential is evolved
@@ -93,6 +96,9 @@
if (evolve_Bvec) then
Bconsrhs(i,j,k,:) = 0.0d0
endif
+ if (evolve_Avec) then
+ Avecrhs(i,j,k,:) = 0.0d0
+ endif
! TODO: Need to set Avecrhs and Aphirhs to zero for centered / or staggered case if vector potential is evolved
Directory: /trunk/
==================
File [modified]: schedule.ccl
Delta lines: +1 -7
===================================================================
--- trunk/schedule.ccl 2014-04-15 19:49:52 UTC (rev 634)
+++ trunk/schedule.ccl 2014-04-15 19:49:55 UTC (rev 635)
@@ -80,7 +80,6 @@
} else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) {
STORAGE: HydroBase::Bvec[timelevels]
STORAGE: HydroBase::Avec[timelevels]
- STORAGE: GRHydro::Bcons[timelevels]
if (CCTK_Equals(Avec_gauge,"Lorenz"))
{
STORAGE: HydroBase::Aphi[timelevels]
@@ -1611,16 +1610,11 @@
{
} "Calculate analysis quantities"
- schedule GRHydro_Analysis_Init IN GRHydroAnalysis
- {
- LANG: Fortran
- } "Initialize variables"
-
schedule GRHydro_CalcDivB IN GRHydroAnalysis AFTER GRHydro_Analysis_Init
{
LANG: Fortran
} "Calculate divB"
-}
+}
if (constrain_to_1D) {
More information about the Commits
mailing list