From 52a24adeead81157f5d205c6a94a3d4a8731c453 Mon Sep 17 00:00:00 2001 From: schnetter Date: Wed, 5 Jul 2006 19:05:46 +0000 Subject: Introduce a function SBP_determine_onesided_stencil which determines which faces should use one-sided stencils, depending on which boundaries are inter-processor boundaries, symmetry boundaries, and multi-patch boundaries. Use this function everywhere. Remove the previous mechinisms; some were not in all cases correct. git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/SummationByParts/trunk@75 f69c4107-0314-4c4f-9ad4-17e986b73f4a --- src/set_norm_mask.F90 | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/set_norm_mask.F90') diff --git a/src/set_norm_mask.F90 b/src/set_norm_mask.F90 index c9b8ffb..40bae3e 100644 --- a/src/set_norm_mask.F90 +++ b/src/set_norm_mask.F90 @@ -17,8 +17,6 @@ subroutine SBP_SetNormMask (CCTK_ARGUMENTS) integer, parameter :: wp = kind(zero) CCTK_INT :: symtable, n_elements, nchar, pen_sym_handle, np CCTK_INT, dimension(6) :: symbnd - CCTK_POINTER :: psym_name - character(len=256) :: symmetry_name CCTK_REAL, dimension(:), allocatable :: mask_x, mask_y, mask_z ! Note: The first number is twice the value from the paper, since Carpet @@ -55,7 +53,7 @@ subroutine SBP_SetNormMask (CCTK_ARGUMENTS) pen_sym_handle = SymmetryHandleOfName ( 'multipatch' ) - if ( any ( symbnd == pen_sym_handle ) ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. any ( symbnd == pen_sym_handle )) ) then allocate ( mask_x(ni), mask_y(nj), mask_z(nk) ) mask_x = 1.0d0; mask_y = 1.0d0; mask_z = 1.0d0 @@ -79,22 +77,22 @@ subroutine SBP_SetNormMask (CCTK_ARGUMENTS) end select end if - if ( symbnd(1) == pen_sym_handle ) then - mask_x(1:np) = bmask(1:np) + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(1) == pen_sym_handle) ) then + mask_x(1:np) = bmask(1:np) end if - if ( symbnd(2) == pen_sym_handle ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(2) == pen_sym_handle) ) then mask_x(ni:ni-np+1:-1) = bmask(1:np) end if - if ( symbnd(3) == pen_sym_handle ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(3) == pen_sym_handle) ) then mask_y(1:np) = bmask(1:np) end if - if ( symbnd(4) == pen_sym_handle ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(4) == pen_sym_handle) ) then mask_y(nj:nj-np+1:-1) = bmask(1:np) end if - if ( symbnd(5) == pen_sym_handle ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(5) == pen_sym_handle) ) then mask_z(1:np) = bmask(1:np) end if - if ( symbnd(6) == pen_sym_handle ) then + if ( pen_sym_handle < 0 .or. (pen_sym_handle >= 0 .and. symbnd(6) == pen_sym_handle) ) then mask_z(nk:nk-np+1:-1) = bmask(1:np) end if -- cgit v1.2.3