aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_ENOReconstruct_drv.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/GRHydro_ENOReconstruct_drv.F90')
-rw-r--r--src/GRHydro_ENOReconstruct_drv.F9048
1 files changed, 40 insertions, 8 deletions
diff --git a/src/GRHydro_ENOReconstruct_drv.F90 b/src/GRHydro_ENOReconstruct_drv.F90
index 3fb0c8f..26bbb58 100644
--- a/src/GRHydro_ENOReconstruct_drv.F90
+++ b/src/GRHydro_ENOReconstruct_drv.F90
@@ -161,6 +161,15 @@ subroutine GRHydro_ENOReconstruct_drv(CCTK_ARGUMENTS)
Y_e_minus(i,j,k) = 0.0d0
endif
+ if (evolve_temper .ne. 0) then
+ ! initialize with cell-center values
+ ! to make sure we have safe initial
+ ! guesses at interfaces even if
+ ! temperature is not reconstructed
+ tempplus(i,j,k) = temperature(i,j,k)
+ tempminus(i,j,k) = temperature(i,j,k)
+ endif
+
enddo
enddo
enddo
@@ -176,13 +185,6 @@ subroutine GRHydro_ENOReconstruct_drv(CCTK_ARGUMENTS)
enddo
end if
- if (evolve_Y_e .ne. 0) then
- call tvdreconstruct(nx, ny, nz, xoffset, yoffset, zoffset, &
- Y_e(:,:,:), Y_e_plus(:,:,:), &
- Y_e_minus(:,:,:), &
- trivial_rp, hydro_excision_mask)
- endif
-
if (flux_direction == 1) then
! constraint transport needs to be able to average fluxes in the directions
! other that flux_direction, which in turn need the primitives on interfaces
@@ -221,6 +223,16 @@ subroutine GRHydro_ENOReconstruct_drv(CCTK_ARGUMENTS)
entropy(:,j,k),entropyminus(:,j,k),entropyplus(:,j,k),&
trivial_rp(:,j,k), hydro_excision_mask(:,j,k))
endif
+ if (evolve_Y_e.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(1),&
+ Y_e(:,j,k),Y_e_minus(:,j,k),Y_e_plus(:,j,k),&
+ trivial_rp(:,j,k), hydro_excision_mask(:,j,k))
+ endif
+ if (evolve_temper.ne.0.and.reconstruct_temper.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(1),&
+ temperature(:,j,k),tempminus(:,j,k),tempplus(:,j,k),&
+ trivial_rp(:,j,k), hydro_excision_mask(:,j,k))
+ endif
else if (CCTK_EQUALS(recon_vars,"conservative")) then
call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(1),&
dens(:,j,k),densminus(:,j,k),densplus(:,j,k),&
@@ -313,6 +325,16 @@ subroutine GRHydro_ENOReconstruct_drv(CCTK_ARGUMENTS)
entropy(j,:,k),entropyminus(j,:,k),entropyplus(j,:,k),&
trivial_rp(j,:,k), hydro_excision_mask(j,:,k))
endif
+ if (evolve_Y_e.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(2),&
+ Y_e(j,:,k),Y_e_minus(j,:,k),Y_e_plus(j,:,k),&
+ trivial_rp(j,:,k), hydro_excision_mask(j,:,k))
+ endif
+ if (evolve_temper.ne.0.and.reconstruct_temper.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(2),&
+ temperature(j,:,k),tempminus(j,:,k),tempplus(j,:,k),&
+ trivial_rp(j,:,k), hydro_excision_mask(j,:,k))
+ endif
else if (CCTK_EQUALS(recon_vars,"conservative")) then
call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(2),&
dens(j,:,k),densminus(j,:,k),densplus(j,:,k),&
@@ -401,10 +423,20 @@ subroutine GRHydro_ENOReconstruct_drv(CCTK_ARGUMENTS)
trivial_rp(j,k,:), hydro_excision_mask(j,k,:))
endif
if (evolve_entropy .ne. 0) then
- call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(2),&
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(3),&
entropy(j,k,:),entropyminus(j,k,:),entropyplus(j,k,:),&
trivial_rp(j,k,:), hydro_excision_mask(j,k,:))
endif
+ if (evolve_Y_e.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(3),&
+ Y_e(j,k,:),Y_e_minus(j,k,:),Y_e_plus(j,k,:),&
+ trivial_rp(j,k,:), hydro_excision_mask(j,k,:))
+ endif
+ if (evolve_temper.ne.0.and.reconstruct_temper.ne.0) then
+ call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(3),&
+ temperature(j,k,:),tempminus(j,k,:),tempplus(j,k,:),&
+ trivial_rp(j,k,:), hydro_excision_mask(j,k,:))
+ endif
else if (CCTK_EQUALS(recon_vars,"conservative")) then
call GRHydro_ENOReconstruct1d(eno_order,cctk_lsh(3),&
dens(j,k,:),densminus(j,k,:),densplus(j,k,:),&