Loading ApplicationExamples/GRMHDb/GRMHDb_ADERDG_FV/TECPLOTinterface.f90 +18 −6 Original line number Diff line number Diff line ! HERE every input variables refere to the "nDim" total space dimensions: ! at the moment, the externally defined TECPLOT routines are referred to 3D space dimensions. RECURSIVE SUBROUTINE ElementCallTECPLOTPLOTTER(wh,lx0,ldx,limiter) USE, INTRINSIC :: ISO_C_BINDING USE TECPLOTPLOTTERmod !, only : ElementTECPLOTPLOTTER,nDOFm Loading @@ -6,8 +10,11 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,nDOFm),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) CALL ElementTECPLOTPLOTTER(wh,lx0_3,ldx_3,limiter) END SUBROUTINE ElementCallTECPLOTPLOTTER Loading @@ -19,8 +26,11 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTADERDGPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,nDOFm),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) CALL ElementTECPLOTPLOTTER_ADERDG(wh,lx0_3,ldx_3,limiter) END SUBROUTINE ElementCallTECPLOTADERDGPLOTTER Loading @@ -32,8 +42,10 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTFVPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,(nSubLim+2*nSubLim_GL)**nDIM),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter,i,j,k,Stencil lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) !!PRINT *, lx0_3 !!PRINT *, ldx_3 !PRINT *, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" Loading ApplicationExamples/GRMHDb/GRMHDb_ADERDG_FV_2D_clean/AstroMod.f90 +11 −11 Original line number Diff line number Diff line Loading @@ -69,6 +69,9 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi REAL :: lx, ly, lz, HH, SS, detg, rho, r_hz, sig, theta, a, M REAL :: st, st2, delta, rho2, sigma, zz, V0Z4(54),V070(70) REAL :: transl(3), xGP(3),Mbh_loc,rbar #if defined(RNSTOV) REAL :: qloc(NSTOV_nODE) #endif REAL, DIMENSION(3) :: xGP_loc,xGP_sph ! Kex = 0.0 Loading Loading @@ -375,14 +378,14 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi r=XGP_sph(1) ! #ifdef SPHERICAL ! then we are in the original coordinate system CALL NSTOV_x(r,NSTOVVar%qloc) CALL NSTOV_x(r,qloc) #elif CYLINDRICAL PRINT *, 'CYLINDRICAL COORDINATES NOT TESTED FOR RNSTOV' #else CALL NSTOV_rbar(r,NSTOVVar%qloc) CALL NSTOV_rbar(r,qloc) #endif ! lapse = EXP(NSTOVVar%qloc(2)) lapse = EXP(qloc(2)) shift(1:3) = 0. !gammaij(1:6) = 0. !gammaij(1) = 1.0 Loading @@ -390,16 +393,16 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi !gammaij(6) = 1.0 g_cov = 0. #ifdef SPHERICAL g_cov(1,1) = 1.0/(1.0-2.0*NSTOVVar%qloc(1)/r) g_cov(1,1) = 1.0/(1.0-2.0*qloc(1)/r) g_cov(2,2) = r**2 g_cov(3,3) = SIN(xGP_sph(2))**2*r**2 ! #else !rbar = r !*NSTOVVar%C*exp(NSTOVVar%q(4,n)) !rbar = 0.5*r/NSTOVVar%radius*(SQRT(NSTOVVar%radius**2-2*NSTOVVar%q(1,NSTOVVar%iradius)*NSTOVVar%radius)+NSTOVVar%radius-NSTOVVar%q(1,NSTOVVar%iradius))*EXP(NSTOVVar%qloc(4)-NSTOVVar%q(4,NSTOVVar%iradius)) g_cov(1,1) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(2,2) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(3,3) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 !rbar = 0.5*r/NSTOVVar%radius*(SQRT(NSTOVVar%radius**2-2*NSTOVVar%q(1,NSTOVVar%iradius)*NSTOVVar%radius)+NSTOVVar%radius-NSTOVVar%q(1,NSTOVVar%iradius))*EXP(qloc(4)-NSTOVVar%q(4,NSTOVVar%iradius)) g_cov(1,1) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(2,2) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(3,3) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 ! #endif g_contr=0. Loading Loading @@ -501,9 +504,6 @@ RECURSIVE SUBROUTINE MatrixInverse3x3(M,iM,det) iM(3,3) =M(1,1)*M(2,2)-M(1,2)*M(2,1) IF(det*det.LT.1e-20) THEN print *, 'FATAL ERROR: det = 0' DO i=1,3 print *, 'M(:,i)',M(:,i) ENDDO STOP ENDIF ! Loading Loading
ApplicationExamples/GRMHDb/GRMHDb_ADERDG_FV/TECPLOTinterface.f90 +18 −6 Original line number Diff line number Diff line ! HERE every input variables refere to the "nDim" total space dimensions: ! at the moment, the externally defined TECPLOT routines are referred to 3D space dimensions. RECURSIVE SUBROUTINE ElementCallTECPLOTPLOTTER(wh,lx0,ldx,limiter) USE, INTRINSIC :: ISO_C_BINDING USE TECPLOTPLOTTERmod !, only : ElementTECPLOTPLOTTER,nDOFm Loading @@ -6,8 +10,11 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,nDOFm),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) CALL ElementTECPLOTPLOTTER(wh,lx0_3,ldx_3,limiter) END SUBROUTINE ElementCallTECPLOTPLOTTER Loading @@ -19,8 +26,11 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTADERDGPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,nDOFm),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) CALL ElementTECPLOTPLOTTER_ADERDG(wh,lx0_3,ldx_3,limiter) END SUBROUTINE ElementCallTECPLOTADERDGPLOTTER Loading @@ -32,8 +42,10 @@ RECURSIVE SUBROUTINE ElementCallTECPLOTFVPLOTTER(wh,lx0,ldx,limiter) REAL, INTENT(IN) :: wh(nVar,(nSubLim+2*nSubLim_GL)**nDIM),lx0(nDim),ldx(nDim) real :: lx0_3(3),ldx_3(3) integer :: limiter,i,j,k,Stencil lx0_3(1:nDim)=lx0 ldx_3(1:nDim)=ldx lx0_3 = 0. ldx_3 = 0. lx0_3(1:nDim)=lx0(1:nDim) ldx_3(1:nDim)=ldx(1:nDim) !!PRINT *, lx0_3 !!PRINT *, ldx_3 !PRINT *, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" Loading
ApplicationExamples/GRMHDb/GRMHDb_ADERDG_FV_2D_clean/AstroMod.f90 +11 −11 Original line number Diff line number Diff line Loading @@ -69,6 +69,9 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi REAL :: lx, ly, lz, HH, SS, detg, rho, r_hz, sig, theta, a, M REAL :: st, st2, delta, rho2, sigma, zz, V0Z4(54),V070(70) REAL :: transl(3), xGP(3),Mbh_loc,rbar #if defined(RNSTOV) REAL :: qloc(NSTOV_nODE) #endif REAL, DIMENSION(3) :: xGP_loc,xGP_sph ! Kex = 0.0 Loading Loading @@ -375,14 +378,14 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi r=XGP_sph(1) ! #ifdef SPHERICAL ! then we are in the original coordinate system CALL NSTOV_x(r,NSTOVVar%qloc) CALL NSTOV_x(r,qloc) #elif CYLINDRICAL PRINT *, 'CYLINDRICAL COORDINATES NOT TESTED FOR RNSTOV' #else CALL NSTOV_rbar(r,NSTOVVar%qloc) CALL NSTOV_rbar(r,qloc) #endif ! lapse = EXP(NSTOVVar%qloc(2)) lapse = EXP(qloc(2)) shift(1:3) = 0. !gammaij(1:6) = 0. !gammaij(1) = 1.0 Loading @@ -390,16 +393,16 @@ RECURSIVE SUBROUTINE METRIC ( xc, lapse, gp, gm, shift, Kex, g_cov, g_contr, phi !gammaij(6) = 1.0 g_cov = 0. #ifdef SPHERICAL g_cov(1,1) = 1.0/(1.0-2.0*NSTOVVar%qloc(1)/r) g_cov(1,1) = 1.0/(1.0-2.0*qloc(1)/r) g_cov(2,2) = r**2 g_cov(3,3) = SIN(xGP_sph(2))**2*r**2 ! #else !rbar = r !*NSTOVVar%C*exp(NSTOVVar%q(4,n)) !rbar = 0.5*r/NSTOVVar%radius*(SQRT(NSTOVVar%radius**2-2*NSTOVVar%q(1,NSTOVVar%iradius)*NSTOVVar%radius)+NSTOVVar%radius-NSTOVVar%q(1,NSTOVVar%iradius))*EXP(NSTOVVar%qloc(4)-NSTOVVar%q(4,NSTOVVar%iradius)) g_cov(1,1) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(2,2) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(3,3) = 1.0/(NSTOVVar%C**2*exp(2.0*NSTOVVar%qloc(4))) ! rbar**2/(r+1e-14)**2 !rbar = 0.5*r/NSTOVVar%radius*(SQRT(NSTOVVar%radius**2-2*NSTOVVar%q(1,NSTOVVar%iradius)*NSTOVVar%radius)+NSTOVVar%radius-NSTOVVar%q(1,NSTOVVar%iradius))*EXP(qloc(4)-NSTOVVar%q(4,NSTOVVar%iradius)) g_cov(1,1) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(2,2) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 g_cov(3,3) = 1.0/(NSTOVVar%C**2*exp(2.0*qloc(4))) ! rbar**2/(r+1e-14)**2 ! #endif g_contr=0. Loading Loading @@ -501,9 +504,6 @@ RECURSIVE SUBROUTINE MatrixInverse3x3(M,iM,det) iM(3,3) =M(1,1)*M(2,2)-M(1,2)*M(2,1) IF(det*det.LT.1e-20) THEN print *, 'FATAL ERROR: det = 0' DO i=1,3 print *, 'M(:,i)',M(:,i) ENDDO STOP ENDIF ! Loading