aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_Boundaries.F90
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-07-05 05:36:34 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-07-05 05:36:34 +0000
commit29cf2193962132b07d38f135f4a0a9d633ef506d (patch)
tree2a7aba0e9dc10f9e1efaa955880f12b129a731d0 /src/GRHydro_Boundaries.F90
parent03389d62d0ddb2c3e35d2e197d92990b105c60b1 (diff)
GRHydro: Fixes to atmosphere mask and the way we sync.
These are the changes as discussed with Roland. In particular, we sync the atmo mask in an extra call before all other syncs and then do atmo reset. Furthermore, primitives must always be synced in last post step in order to get initial guesses in the buffer zones via prolongation. Atmo reset must be done before prolongation to ensure we don't overwrite "good" data from the coarse grid! git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@377 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
Diffstat (limited to 'src/GRHydro_Boundaries.F90')
-rw-r--r--src/GRHydro_Boundaries.F9048
1 files changed, 48 insertions, 0 deletions
diff --git a/src/GRHydro_Boundaries.F90 b/src/GRHydro_Boundaries.F90
index b3d153d..61f6664 100644
--- a/src/GRHydro_Boundaries.F90
+++ b/src/GRHydro_Boundaries.F90
@@ -99,6 +99,8 @@ subroutine GRHydro_InitSymBound(CCTK_ARGUMENTS)
!endif
endif
+ call SetCartSymVN(ierr, cctkGH, sym, "GRHydro::atmosphere_mask_real")
+
sym(1) = -1
sym(2) = 1
sym(3) = 1
@@ -490,3 +492,49 @@ subroutine GRHydro_SelectPrimitiveBoundaries(CCTK_ARGUMENTS)
end subroutine GRHydro_SelectPrimitiveBoundaries
+
+
+
+
+
+subroutine GRHydro_SelectAtmosphereMaskBoundaries(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, parameter :: faces=CCTK_ALL_FACES
+ CCTK_INT, parameter :: ione=1
+
+ sw = GRHydro_stencil
+
+
+!!$Flat boundaries if required
+
+ if (verbose.eq.1) call CCTK_INFO("Selecting atmosphere mask BC")
+
+
+ if (CCTK_EQUALS(bound,"flat")) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_atmosphere_mask_real", "Flat")
+ endif
+
+ if (CCTK_EQUALS(bound,"none")) then
+ ierr = ierr + Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "GRHydro::GRHydro_atmosphere_mask_real", "None")
+ 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_SelectAtmosphereMaskBoundaries
+