diff options
author | rhaas <rhaas@ac85fae7-cede-4708-beff-ae01c7fa1c26> | 2013-03-28 01:49:03 +0000 |
---|---|---|
committer | rhaas <rhaas@ac85fae7-cede-4708-beff-ae01c7fa1c26> | 2013-03-28 01:49:03 +0000 |
commit | 79a52502bc1524a76ef419fc815ab4f72bfae6e9 (patch) | |
tree | 02719bc0b34de791bf24a9892864e928bec164ed /src | |
parent | b20c03f40baccdd4e0599dffa367a59ee66a5b65 (diff) |
Finish the implementation of con2prim using the entropy equation.
* Tested successfully pointwisely. It still needs to be tested on evolution.
From: Bruno Coutinho Mundim <bcmsma@astro.rit.edu>
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/GRHydro_InitData/trunk@204 ac85fae7-cede-4708-beff-ae01c7fa1c26
Diffstat (limited to 'src')
-rw-r--r-- | src/GRHydro_C2P2CM.F90 | 89 |
1 files changed, 87 insertions, 2 deletions
diff --git a/src/GRHydro_C2P2CM.F90 b/src/GRHydro_C2P2CM.F90 index 9394005..9856c3b 100644 --- a/src/GRHydro_C2P2CM.F90 +++ b/src/GRHydro_C2P2CM.F90 @@ -44,10 +44,12 @@ subroutine c2p2cM(CCTK_ARGUMENTS) CCTK_REAL :: gxx_send,gxy_send,gxz_send,gyy_send,gyz_send,gzz_send CCTK_REAL :: dens_send,sx_send,sy_send,sz_send,tau_send CCTK_REAL :: bconsx_send, bconsy_send, bconsz_send + CCTK_REAL :: entropy_send, entropycons_send; CCTK_REAL :: rho_send,velx_send,vely_send,velz_send,eps_send CCTK_REAL :: press_send,w_lorentz_send CCTK_REAL :: bvcx_send, bvcy_send, bvcz_send, b2_send CCTK_REAL :: C2P_failed + CCTK_REAL :: BdotB, Bdotv, b2, beta_mag CCTK_INT :: epsnegative ! begin EOS Omni vars @@ -119,6 +121,7 @@ subroutine c2p2cM(CCTK_ARGUMENTS) ) w_lorentz_send = 1.0d0/w_lorentz_send + epsnegative = 0 xrho = 1.0d-10 @@ -136,8 +139,46 @@ subroutine c2p2cM(CCTK_ARGUMENTS) xrho,epsval,xtemp,xye,local_gam,keyerr,anyerr) local_gam = local_gam + 1.0 + if(use_c2p_with_entropy_eqn.eq.1)then + entropy_send = ( local_gam(1) - 1.0d0 ) * eps_send * & + rho_send**(2.0d0 - local_gam(1)) + entropycons_send = sdet * w_lorentz_send * entropy_send + endif + C2P_failed = 0.0d0 + write(*,*) 'C2P2CM test: metric values.' + write(*,*) ' gxx: ', gxx_send + write(*,*) ' gxy: ', gxy_send + write(*,*) ' gxz: ', gxz_send + write(*,*) ' gyy: ', gyy_send + write(*,*) ' gyz: ', gyz_send + write(*,*) ' gzz: ', gzz_send + write(*,*) ' uxx: ', uxx + write(*,*) ' uxy: ', uxy + write(*,*) ' uxz: ', uxz + write(*,*) ' uyy: ', uyy + write(*,*) ' uyz: ', uyz + write(*,*) ' uzz: ', uzz + write(*,*) ' det: ', det + + write(*,*) 'C2P2CM test: initial primitive guess values.' + write(*,*) ' primitive variables: ' + write(*,*) ' rho : ',rho_send + write(*,*) ' velx : ',velx_send + write(*,*) ' vely : ',vely_send + write(*,*) ' velz : ',velz_send + write(*,*) ' press : ',press_send + write(*,*) ' eps : ',eps_send + if(use_c2p_with_entropy_eqn.eq.1)then + write(*,*) ' entropy : ',entropy_send + endif + write(*,*) ' W : ',w_lorentz_send + write(*,*) ' Bvecx : ',bvcx_send + write(*,*) ' Bvecy : ',bvcy_send + write(*,*) ' Bvecz : ',bvcz_send + write(*,*) ' C2P_failed : ',C2P_failed + write(*,*) 'C2P2CM test: initial values.' write(*,*) ' conservative variables: ' write(*,*) ' dens: ',dens_send @@ -148,19 +189,57 @@ subroutine c2p2cM(CCTK_ARGUMENTS) write(*,*) ' Bconsx : ',bconsx_send write(*,*) ' Bconsy : ',bconsy_send write(*,*) ' Bconsz : ',bconsz_send + if(use_c2p_with_entropy_eqn.eq.1)then + write(*,*) ' entropycons : ',entropycons_send + endif write(*,*) ' eps : ',eps_send write(*,*) ' W : ',w_lorentz_send write(*,*) ' Bvecx : ',bvcx_send write(*,*) ' Bvecy : ',bvcy_send write(*,*) ' Bvecz : ',bvcz_send + +! Is this point magnetically dominated? + BdotB = gxx_send*bvcx_send**2+gyy_send*bvcy_send**2+gzz_send*bvcz_send**2& + +2.0*(gxy_send*bvcx_send*bvcy_send+gxz_send*bvcx_send*bvcy_send+ & + gyz_send*bvcy_send*bvcz_send) + Bdotv = gxx_send*bvcx_send*velx_send+gyy_send*bvcy_send*vely_send & + +gzz_send*bvcz_send*velz_send & + +gxy_send*(bvcx_send*vely_send+bvcy_send*velx_send) & + +gxz_send*(bvcx_send*velz_send+bvcz_send*velx_send) & + +gyz_send*(bvcy_send*velz_send+bvcz_send*vely_send) + + b2 = BdotB/w_lorentz_send**2 + Bdotv**2 + + beta_mag = 2.0*press_send/b2; + + write(*,*) ' BdotB : ',BdotB + write(*,*) ' Bdotv : ',Bdotv + write(*,*) ' b2 : ',b2 + write(*,*) 'beta_mag : ',beta_mag - write(*,*) 'C2P2CM test: getting the associated primitive variables.' - call Con2PrimGenM(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,local_gam(1),dens_send,sx_send,sy_send,sz_send, & + if(use_c2p_with_entropy_eqn.eq.0)then + write(*,*) 'C2P2CM test: getting the associated primitive variables.' + call Con2PrimGenM(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,local_gam(1),dens_send,sx_send,sy_send,sz_send, & tau_send,bconsx_send,bconsy_send,bconsz_send,xtemp(1),xye(1),rho_send,velx_send,vely_send,velz_send, & eps_send,press_send,bvcx_send,bvcy_send,bvcz_send,b2_send,w_lorentz_send, & gxx_send,gxy_send,gxz_send,gyy_send,gyz_send,gzz_send,& uxx,uxy,uxz,uyy,uyz,uzz,det,& epsnegative,C2P_failed) + else + write(*,*) 'C2P2CMee test: getting the associated primitive variables.' + call Con2PrimGenMee(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,local_gam(1),dens_send,sx_send,sy_send,sz_send, & + tau_send,bconsx_send,bconsy_send,bconsz_send,entropycons_send,xtemp(1),xye(1),rho_send,velx_send,vely_send,velz_send, & + eps_send,press_send,bvcx_send,bvcy_send,bvcz_send,b2_send,w_lorentz_send, & + gxx_send,gxy_send,gxz_send,gyy_send,gyz_send,gzz_send,& + uxx,uxy,uxz,uyy,uyz,uzz,det,& + epsnegative,C2P_failed) + endif + + if(use_c2p_with_entropy_eqn.eq.1)then + entropy_send = ( local_gam(1) - 1.0d0 ) * eps_send * & + rho_send**(2.0d0 - local_gam(1)) + entropycons_send = sdet * w_lorentz_send * entropy_send + endif write(*,*) 'C2P2CM test: the primitive variables are' write(*,*) ' primitive variables: ' @@ -170,6 +249,9 @@ subroutine c2p2cM(CCTK_ARGUMENTS) write(*,*) ' velz : ',velz_send write(*,*) ' press : ',press_send write(*,*) ' eps : ',eps_send + if(use_c2p_with_entropy_eqn.eq.1)then + write(*,*) ' entropy : ',entropy_send + endif write(*,*) ' W : ',w_lorentz_send write(*,*) ' Bvecx : ',bvcx_send write(*,*) ' Bvecy : ',bvcy_send @@ -191,6 +273,9 @@ subroutine c2p2cM(CCTK_ARGUMENTS) write(*,*) ' Bconsx : ',bconsx_send write(*,*) ' Bconsy : ',bconsy_send write(*,*) ' Bconsz : ',bconsz_send + if(use_c2p_with_entropy_eqn.eq.1)then + write(*,*) ' entropycons : ',entropycons_send + endif write(*,*) ' eps : ',eps_send write(*,*) ' W : ',w_lorentz_send write(*,*) ' Bvecx : ',bvcx_send |