aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_Boundaries.F90
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-07-05 05:36:36 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-07-05 05:36:36 +0000
commitbadb57e487daf59d8ef1f172e13bdc2e54084fbf (patch)
tree57ebb06a5231de3d9732d2c37594d1e2851379c4 /src/GRHydro_Boundaries.F90
parent29cf2193962132b07d38f135f4a0a9d633ef506d (diff)
GRHydro: Sync ALL prinmitives after regridding. This ensures that all variables are known on the finer grid when sync_conserved_only = yes. This is fix only affects runs which use a microphysical EOS.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@378 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
Diffstat (limited to 'src/GRHydro_Boundaries.F90')
-rw-r--r--src/GRHydro_Boundaries.F90140
1 files changed, 139 insertions, 1 deletions
diff --git a/src/GRHydro_Boundaries.F90 b/src/GRHydro_Boundaries.F90
index 61f6664..5fad2e2 100644
--- a/src/GRHydro_Boundaries.F90
+++ b/src/GRHydro_Boundaries.F90
@@ -360,7 +360,7 @@ end subroutine GRHydro_Boundaries
-subroutine GRHydro_SelectPrimitiveBoundaries(CCTK_ARGUMENTS)
+subroutine GRHydro_SelectPrimitiveInitialGuessesBoundaries(CCTK_ARGUMENTS)
implicit none
@@ -490,6 +490,142 @@ subroutine GRHydro_SelectPrimitiveBoundaries(CCTK_ARGUMENTS)
if (ierr < 0) call CCTK_WARN(0, "problems with applying the chosen boundary condition")
+end subroutine GRHydro_SelectPrimitiveInitialGuessesBoundaries
+
+
+
+
+
+
+
+
+subroutine GRHydro_SelectPrimitiveBoundaries(CCTK_ARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+ DECLARE_CCTK_FUNCTIONS
+
+ integer, dimension(3) :: sw
+ integer :: ierr = 0
+ integer :: i,j,k
+ CCTK_INT :: GRHydro_UseGeneralCoordinates, general_coordinates
+
+ CCTK_INT, parameter :: faces=CCTK_ALL_FACES
+ CCTK_INT, parameter :: ione=1
+
+ sw = GRHydro_stencil
+
+ general_coordinates = GRHydro_UseGeneralCoordinates(cctkGH)
+
+!!$Flat boundaries if required
+
+ if (verbose.eq.1) call CCTK_INFO("Selecting primitive BC")
+
+
+ if (CCTK_EQUALS(bound,"flat")) 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
+ if(evolve_mhd.ne.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
+
+ if(evolve_tracer.ne.0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_tracers", "Flat")
+ endif
+
+ if(evolve_y_e.ne.0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::Y_e", "Flat")
+ endif
+
+ if(evolve_temper.ne.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
+
+ if (CCTK_EQUALS(bound,"none")) 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
+
+ if(evolve_mhd.ne.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
+
+ if(evolve_tracer.ne.0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_tracers", "None")
+
+ endif
+
+ if(evolve_y_e.ne.0) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::Y_e", "None")
+
+ endif
+
+ if(evolve_temper.ne.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
+
+ end if
+
+ 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_SelectPrimitiveBoundaries
@@ -497,6 +633,8 @@ end subroutine GRHydro_SelectPrimitiveBoundaries
+
+
subroutine GRHydro_SelectAtmosphereMaskBoundaries(CCTK_ARGUMENTS)
implicit none