aboutsummaryrefslogtreecommitdiff
path: root/src/All_Coeffs_mod.F90
diff options
context:
space:
mode:
authordiener <diener@f69c4107-0314-4c4f-9ad4-17e986b73f4a>2009-03-31 23:00:16 +0000
committerdiener <diener@f69c4107-0314-4c4f-9ad4-17e986b73f4a>2009-03-31 23:00:16 +0000
commit9fbf1f753b7927be6d888b46049953f36a1fe3f4 (patch)
treec5cccc75e8a9a8a840e7218bb7e41c9e07e1e65e /src/All_Coeffs_mod.F90
parent77d4fe21433a1d33867954de21247c196954ac35 (diff)
Introduce a boolean parameter to switch of SBP near outer boundary. Instead
switch to progressively lower order centered stencil as the boundery is approached, similar to what is done with the second order and upwind stencils. git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/SummationByParts/trunk@118 f69c4107-0314-4c4f-9ad4-17e986b73f4a
Diffstat (limited to 'src/All_Coeffs_mod.F90')
-rw-r--r--src/All_Coeffs_mod.F90102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/All_Coeffs_mod.F90 b/src/All_Coeffs_mod.F90
index 1886497..55a76ab 100644
--- a/src/All_Coeffs_mod.F90
+++ b/src/All_Coeffs_mod.F90
@@ -28,6 +28,17 @@ module All_Coeffs_mod
end subroutine coeffs_1_2_1
+ subroutine coeffs_1_2 ( a, q )
+
+ CCTK_REAL, dimension(1), intent(OUT) :: a
+ CCTK_REAL, dimension(1,1), intent(OUT) :: q
+
+ a(1) = 1.0_wp/2.0_wp
+
+ q(1,1) = zero
+
+ end subroutine coeffs_1_2
+
subroutine coeffs_up_2_1 ( a1, q1, a2, q2 )
CCTK_REAL, dimension(-1:1), intent(OUT) :: a1, a2
@@ -161,6 +172,24 @@ module All_Coeffs_mod
end subroutine coeffs_1_4_2
+ subroutine coeffs_1_4 ( a, q )
+
+ CCTK_REAL, dimension(2), intent(OUT) :: a
+ CCTK_REAL, dimension(3,2), intent(OUT) :: q
+
+ a(1) = 2.0_wp/3.0_wp
+ a(2) = -1.0_wp/12.0_wp
+
+ q(1,1) = zero
+ q(2,1) = zero
+ q(3,1) = zero
+
+ q(1,2) = -1.0_wp/2.0_wp
+ q(2,2) = zero
+ q(3,2) = 1.0_wp/2.0_wp
+
+ end subroutine coeffs_1_4
+
subroutine coeffs_up_4_2 ( a1, q1, a2, q2 )
CCTK_REAL, dimension(-2:2), intent(OUT) :: a1, a2
@@ -526,6 +555,35 @@ module All_Coeffs_mod
end subroutine coeffs_1_6_3_opt
+ subroutine coeffs_1_6 ( a, q )
+
+ CCTK_REAL, dimension(3), intent(OUT) :: a
+ CCTK_REAL, dimension(5,3), intent(OUT) :: q
+
+ a(1) = 3.0_wp/4.0_wp
+ a(2) = -3.0_wp/20.0_wp
+ a(3) = 1.0_wp/60.0_wp
+
+ q(1,1) = zero
+ q(2,1) = zero
+ q(3,1) = zero
+ q(4,1) = zero
+ q(5,1) = zero
+
+ q(1,2) = -1.0_wp/2.0_wp
+ q(2,2) = zero
+ q(3,2) = 1.0_wp/2.0_wp
+ q(4,2) = zero
+ q(5,2) = zero
+
+ q(1,3) = 1.0_wp/12.0_wp
+ q(2,3) = -2.0_wp/3.0_wp
+ q(3,3) = zero
+ q(4,3) = 2.0_wp/3.0_wp
+ q(5,3) = -1.0_wp/12.0_wp
+
+ end subroutine coeffs_1_6
+
subroutine coeffs_up_6_3_opt ( a1, q1, a2, q2 )
CCTK_REAL, dimension(-3:3), intent(OUT) :: a1, a2
@@ -1129,6 +1187,50 @@ module All_Coeffs_mod
end subroutine coeffs_1_8_4_opt
+ subroutine coeffs_1_8 ( a, q )
+
+ CCTK_REAL, dimension(4), intent(OUT) :: a
+ CCTK_REAL, dimension(7,4), intent(OUT) :: q
+
+ a(1) = 4.0_wp/5.0_wp
+ a(2) = -1.0_wp/5.0_wp
+ a(3) = 4.0_wp/105.0_wp
+ a(4) = -1.0_wp/280.0_wp
+
+ q(1,1) = zero
+ q(2,1) = zero
+ q(3,1) = zero
+ q(4,1) = zero
+ q(5,1) = zero
+ q(6,1) = zero
+ q(7,1) = zero
+
+ q(1,2) = -1.0_wp/2.0_wp
+ q(2,2) = zero
+ q(3,2) = 1.0_wp/2.0_wp
+ q(4,2) = zero
+ q(5,2) = zero
+ q(6,2) = zero
+ q(7,1) = zero
+
+ q(1,3) = 1.0_wp/12.0_wp
+ q(2,3) = -2.0_wp/3.0_wp
+ q(3,3) = zero
+ q(4,3) = 2.0_wp/3.0_wp
+ q(5,3) = -1.0_wp/12.0_wp
+ q(6,3) = zero
+ q(7,3) = zero
+
+ q(1,4) = -1.0_wp/60.0_wp
+ q(2,4) = 3.0_wp/20.0_wp
+ q(3,4) = -3.0_wp/4.0_wp
+ q(4,4) = zero
+ q(5,4) = 3.0_wp/4.0_wp
+ q(6,4) = -3.0_wp/20.0_wp
+ q(7,4) = 1.0_wp/60.0_wp
+
+ end subroutine coeffs_1_8
+
subroutine coeffs_up_8_4_opt ( a1, q1, a2, q2 )
CCTK_REAL, dimension(-4:4), intent(OUT) :: a1, a2