aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface.ccl13
-rw-r--r--schedule.ccl8
-rw-r--r--src/set_norm_mask.F9019
3 files changed, 27 insertions, 13 deletions
diff --git a/interface.ccl b/interface.ccl
index c05a3c1..924cabc 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -28,10 +28,6 @@ PROVIDES FUNCTION Diff_gv WITH DiffGv LANGUAGE C
CCTK_REAL FUNCTION GetScalProdCoeff ()
PROVIDES FUNCTION GetScalProdCoeff WITH GetCoeff LANGUAGE Fortran
-SUBROUTINE SetNormMask ( CCTK_POINTER IN cctkGH, \
- CCTK_REAL OUT ARRAY mask )
-PROVIDES FUNCTION SetNormMask WITH SetNMask LANGUAGE C
-
CCTK_INT FUNCTION GetDomainSpecification \
(CCTK_INT IN size, \
CCTK_REAL OUT ARRAY physical_min, \
@@ -49,3 +45,12 @@ REQUIRES FUNCTION SymmetryTableHandleForGrid
CCTK_INT FUNCTION SymmetryHandleOfName (CCTK_STRING IN sym_name)
REQUIRES FUNCTION SymmetryHandleOfName
+
+
+
+public
+
+CCTK_REAL normmask TYPE=gf TAGS='tensortypealias="scalar" Prolongation="None"'
+{
+ nmask
+} "Mask for the norm calculation"
diff --git a/schedule.ccl b/schedule.ccl
index 8ebd83a..e1bc52a 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -1,2 +1,10 @@
# Schedule definitions for thorn SummationByParts
# $Header$
+
+# Mask for norms
+STORAGE: normmask
+
+SCHEDULE SBP_SetNormMask AT initial
+{
+ LANG: Fortran
+} "Setup the mask for the calulcation of the norm"
diff --git a/src/set_norm_mask.F90 b/src/set_norm_mask.F90
index 30b3c63..1c9c2e7 100644
--- a/src/set_norm_mask.F90
+++ b/src/set_norm_mask.F90
@@ -2,18 +2,16 @@
#include "cctk.h"
#include "cctk_Functions.h"
+#include "cctk_Arguments.h"
#include "cctk_Parameters.h"
-subroutine sbp_set_norm_mask (cctkGH, ni, nj, nk, mask)
+subroutine SBP_SetNormMask (CCTK_ARGUMENTS)
implicit none
DECLARE_CCTK_FUNCTIONS
+ DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
-
- CCTK_POINTER, intent(IN) :: cctkGH
- CCTK_INT, intent(IN) :: ni, nj, nk
- CCTK_REAL, dimension(ni,nj,nk), intent(OUT) :: mask
CCTK_REAL, parameter :: zero = 0.0
integer, parameter :: wp = kind(zero)
@@ -47,12 +45,15 @@ subroutine sbp_set_norm_mask (cctkGH, ni, nj, nk, mask)
5127739.0_wp/5080320.0_wp/)
CCTK_REAL, dimension(8) :: bmask
+ CCTK_INT :: ni, nj, nk
+
+ ni = cctk_lsh(1); nj = cctk_lsh(2); nk = cctk_lsh(3)
symtable = SymmetryTableHandleForGrid ( cctkGH )
call Util_TableGetIntArray ( n_elements, symtable, 6, &
symbnd, 'symmetry_handle' )
- pen_sym_handle = SymmetryHandleOfName ( 'penalty inter-patch' )
+ pen_sym_handle = SymmetryHandleOfName ( 'multipatch' )
if ( any ( symbnd == pen_sym_handle ) ) then
allocate ( mask_x(ni), mask_y(nj), mask_z(nk) )
@@ -97,9 +98,9 @@ subroutine sbp_set_norm_mask (cctkGH, ni, nj, nk, mask)
mask_z(nk:nk-np+1:-1) = bmask(1:np)
end if
- mask = outer_prod_3d ( mask_x, mask_y, mask_z )
+ nmask = outer_prod_3d ( mask_x, mask_y, mask_z )
else
- mask = 1.0_wp
+ nmask = 1.0_wp
end if
contains
@@ -121,4 +122,4 @@ contains
end do
end function outer_prod_3d
-end subroutine sbp_set_norm_mask
+end subroutine SBP_SetNormMask