aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_ReconstructPoly.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/GRHydro_ReconstructPoly.F90')
-rw-r--r--src/GRHydro_ReconstructPoly.F9037
1 files changed, 28 insertions, 9 deletions
diff --git a/src/GRHydro_ReconstructPoly.F90 b/src/GRHydro_ReconstructPoly.F90
index 9f30cb7..1e3a5b8 100644
--- a/src/GRHydro_ReconstructPoly.F90
+++ b/src/GRHydro_ReconstructPoly.F90
@@ -52,6 +52,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
+ logical :: apply_enhanced_ppm
+
integer :: nx, ny, nz, i, j, k, itracer
logical, dimension(:,:,:), allocatable :: trivial_rp
@@ -109,6 +111,14 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
call SpaceMask_GetStateBits(not_trivialz, "Hydro_RiemannProblemZ", &
&"not_trivial")
+ ! if use_enhanced_ppm, allow old PPM on one level
+ if (GRHydro_oppm_reflevel .eq. (-1) .or. &
+ GRHydro_reflevel .ne. GRHydro_oppm_reflevel) then
+ apply_enhanced_ppm = use_enhanced_ppm .ne. 0
+ else
+ apply_enhanced_ppm = .false.
+ end if
+
nx = cctk_lsh(1)
ny = cctk_lsh(2)
nz = cctk_lsh(3)
@@ -329,7 +339,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(i, j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, ny - GRHydro_stencil + 1
- call SimplePPM_1d(GRHydro_eos_handle,1,nx,CCTK_DELTA_SPACE(1),&
+ call SimplePPM_1d(apply_enhanced_ppm,&
+ GRHydro_eos_handle,1,nx,CCTK_DELTA_SPACE(1),&
rho(:,j,k),velx(:,j,k),vely(:,j,k),velz(:,j,k),eps(:,j,k),&
press(:,j,k),rhominus(:,j,k),velxminus(:,j,k),velyminus(:,j,k),&
velzminus(:,j,k),epsminus(:,j,k),rhoplus(:,j,k),&
@@ -356,7 +367,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, ny - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(nx,CCTK_DELTA_SPACE(1),rho(:,j,k), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ nx,CCTK_DELTA_SPACE(1),rho(:,j,k), &
velx(:,j,k),vely(:,j,k),velz(:,j,k), &
tracer(:,j,k,:),tracerminus(:,j,k,:),tracerplus(:,j,k,:), &
press(:,j,k))
@@ -368,7 +380,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, ny - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(nx,CCTK_DELTA_SPACE(1),rho(:,j,k), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ nx,CCTK_DELTA_SPACE(1),rho(:,j,k), &
velx(:,j,k),vely(:,j,k),velz(:,j,k), &
Y_e(:,j,k),Y_e_minus(:,j,k),Y_e_plus(:,j,k), &
press(:,j,k))
@@ -440,7 +453,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(i, j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_1d(GRHydro_eos_handle,1,ny,CCTK_DELTA_SPACE(2),&
+ call SimplePPM_1d(apply_enhanced_ppm,&
+ GRHydro_eos_handle,1,ny,CCTK_DELTA_SPACE(2),&
rho(j,:,k),vely(j,:,k),velz(j,:,k),velx(j,:,k),eps(j,:,k),&
press(j,:,k),rhominus(j,:,k),velyminus(j,:,k),velzminus(j,:,k),&
velxminus(j,:,k),epsminus(j,:,k),rhoplus(j,:,k),&
@@ -467,7 +481,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(ny,CCTK_DELTA_SPACE(2),rho(j,:,k), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ ny,CCTK_DELTA_SPACE(2),rho(j,:,k), &
vely(j,:,k),velz(j,:,k),velx(j,:,k), &
tracer(j,:,k,:),tracerminus(j,:,k,:),tracerplus(j,:,k,:), &
press(j,:,k))
@@ -479,7 +494,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(j, k)
do k = GRHydro_stencil, nz - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(ny,CCTK_DELTA_SPACE(2),rho(j,:,k), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ ny,CCTK_DELTA_SPACE(2),rho(j,:,k), &
velx(j,:,k),vely(j,:,k),velz(j,:,k), &
Y_e(j,:,k),Y_e_minus(j,:,k),Y_e_plus(j,:,k), &
press(j,:,k))
@@ -551,7 +567,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(i, j, k)
do k = GRHydro_stencil, ny - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_1d(GRHydro_eos_handle,1,nz,CCTK_DELTA_SPACE(3),&
+ call SimplePPM_1d(apply_enhanced_ppm,&
+ GRHydro_eos_handle,1,nz,CCTK_DELTA_SPACE(3),&
rho(j,k,:),velz(j,k,:),velx(j,k,:),vely(j,k,:),eps(j,k,:),&
press(j,k,:),rhominus(j,k,:),velzminus(j,k,:),velxminus(j,k,:),&
velyminus(j,k,:),epsminus(j,k,:),rhoplus(j,k,:),&
@@ -579,7 +596,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
do k = GRHydro_stencil, ny - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(nz,CCTK_DELTA_SPACE(3),rho(j,k,:), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ nz,CCTK_DELTA_SPACE(3),rho(j,k,:), &
velz(j,k,:),velx(j,k,:),vely(j,k,:), &
tracer(j,k,:,:),tracerminus(j,k,:,:),tracerplus(j,k,:,:), &
press(j,k,:))
@@ -591,7 +609,8 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!$OMP PARALLEL DO PRIVATE(j, k)
do k = GRHydro_stencil, ny - GRHydro_stencil + 1
do j = GRHydro_stencil, nx - GRHydro_stencil + 1
- call SimplePPM_tracer_1d(nz,CCTK_DELTA_SPACE(3),rho(j,k,:), &
+ call SimplePPM_tracer_1d(apply_enhanced_ppm,&
+ nz,CCTK_DELTA_SPACE(3),rho(j,k,:), &
velx(j,k,:),vely(j,k,:),velz(j,k,:), &
Y_e(j,k,:),Y_e_minus(j,k,:),Y_e_plus(j,k,:), &
press(j,k,:))