From 9fbf1f753b7927be6d888b46049953f36a1fe3f4 Mon Sep 17 00:00:00 2001 From: diener Date: Tue, 31 Mar 2009 23:00:16 +0000 Subject: 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 --- src/All_Coeffs_mod.F90 | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) (limited to 'src/All_Coeffs_mod.F90') 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 -- cgit v1.2.3