diff options
Diffstat (limited to 'src/GRHydro_Con2Prim.F90')
-rw-r--r-- | src/GRHydro_Con2Prim.F90 | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/GRHydro_Con2Prim.F90 b/src/GRHydro_Con2Prim.F90 new file mode 100644 index 0000000..6c22850 --- /dev/null +++ b/src/GRHydro_Con2Prim.F90 @@ -0,0 +1,119 @@ + /*@@ + @file GRHydro_Con2Prim.F90 + @date Sat Jan 26 02:49:32 2002 + @author Luca Baiotti + @desc + A test of the conservative to primitive exchange. + @enddesc + @@*/ + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "cctk_Arguments.h" + + /*@@ + @routine GRHydro_con2primtest + @date Sat Jan 26 02:49:58 2002 + @author Luca Baiotti + @desc + A test of the conservative to primitive variable solver. + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +subroutine GRHydro_Init_Data_RefinementLevel(CCTK_ARGUMENTS) + + implicit none + DECLARE_CCTK_ARGUMENTS + + GRHydro_init_data_reflevel = aint(log10(dble(cctk_levfac(1)))/log10(2.0d0)) + +end subroutine GRHydro_Init_Data_RefinementLevel + + +subroutine GRHydro_con2primtest(CCTK_ARGUMENTS) + + implicit none + + DECLARE_CCTK_ARGUMENTS + DECLARE_CCTK_PARAMETERS + + integer didit,i,j,k,nx,ny,nz + CCTK_REAL det,uxx,uxy,uxz,uyy,uyz,uzz + CCTK_REAL dens_send,sx_send,sy_send,sz_send,tau_send + CCTK_REAL rho_send,velx_send,vely_send,velz_send,eps_send + CCTK_REAL press_send,w_lorentz_send,x_send,y_send,z_send,r_send + CCTK_REAL pmin, epsmin + CCTK_INT C2P_failed + logical epsnegative + +#ifdef _EOS_BASE_INC_ +#undef _EOS_BASE_INC_ +#endif +#include "EOS_Base.inc" + + call CCTK_WARN(1,"For this test, remember to use a polytropic EoS and to set eos_gamma = 2.0 and eos_k = 100.0") + + nx = cctk_lsh(1) + ny = cctk_lsh(2) + nz = cctk_lsh(3) + + x_send = 0.0d0 + y_send = 0.0d0 + z_send = 0.0d0 + r_send = 0.0d0 + + det = 1.0d0 + uxx = 1.0d0 + uyy = 1.0d0 + uzz = 1.0d0 + uxy = 0.0d0 + uxz = 0.0d0 + uyz = 0.0d0 + + dens_send = 1.29047362d0 + sx_send = 0.166666658d0 + sy_send = 0.166666658d0 + sz_send = 0.166666658d0 + tau_send = 0.484123939d0 + + rho_send = 1.0d0 + velx_send = 0.0d0 + vely_send = 0.0d0 + velz_send = 0.0d0 + eps_send = 1.0d-6 + press_send = 6.666666666666667d-7 + w_lorentz_send = 1.0d0 + + epsnegative = .false. + + pmin = EOS_Pressure(GRHydro_eos_handle, GRHydro_rho_min, 1.0d0) + epsmin = EOS_SpecificIntEnergy(GRHydro_eos_handle, GRHydro_rho_min, pmin) + C2P_failed = 0 + + write(*,*) 'Con2Prim test: converting to primitive variables' + call Con2Prim_pt(GRHydro_eos_handle,dens_send,sx_send,sy_send,sz_send,& + tau_send,rho_send,velx_send,vely_send,velz_send,& + eps_send,press_send,w_lorentz_send, & + uxx,uxy,uxz,uyy,uyz,uzz,det,x_send,y_send,z_send,r_send,& + epsnegative,GRHydro_rho_min, pmin, epsmin, GRHydro_init_data_reflevel, C2P_failed) + write(*,*) 'Con2Prim test: the primitive variables are' + write(*,*) ' primitive variables: ' + write(*,*) ' rho : ',rho_send + write(*,*) ' velx : ',velx_send + write(*,*) ' vely : ',vely_send + write(*,*) ' velz : ',velz_send + write(*,*) ' eps : ',eps_send + write(*,*) ' press : ',press_send + write(*,*) ' w_lor : ',w_lorentz_send + + STOP + + return + +end subroutine GRHydro_con2primtest |