aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknarf <knarf@ac85fae7-cede-4708-beff-ae01c7fa1c26>2013-12-06 23:21:13 +0000
committerknarf <knarf@ac85fae7-cede-4708-beff-ae01c7fa1c26>2013-12-06 23:21:13 +0000
commit16b1062935cead132d008bae2d645c54b8cbd87b (patch)
treef0790f5aeda1aca53de79d7a68e413f46f7af143
parent6010246101dce0e9d67596cbbfcc0d1f73f429dc (diff)
fix last patch - now passes testsuite consistently
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/GRHydro_InitData/trunk@222 ac85fae7-cede-4708-beff-ae01c7fa1c26
-rw-r--r--src/GRHydro_PoloidalMagFieldM.F9023
1 files changed, 16 insertions, 7 deletions
diff --git a/src/GRHydro_PoloidalMagFieldM.F90 b/src/GRHydro_PoloidalMagFieldM.F90
index c809001..c70e80c 100644
--- a/src/GRHydro_PoloidalMagFieldM.F90
+++ b/src/GRHydro_PoloidalMagFieldM.F90
@@ -95,7 +95,7 @@ subroutine GRHydro_PoloidalMagFieldM(CCTK_ARGUMENTS)
rhofac = 1.0d0-rho(i,j,k)/poloidal_rho_max
delPcut = press(i,j,k)-poloidal_P_cut
maxP_Pcut = max(delPcut,0.0d0)
- AphiL = poloidal_A_b*rhofac**poloidal_n_p*maxP_Pcut
+ AphiL = poloidal_A_b*rhofac**poloidal_n_p*maxP_Pcut**poloidal_P_p
Ax = -y(i,j,k)*AphiL
Ay = x(i,j,k)*AphiL
Az = 0.0
@@ -115,12 +115,21 @@ subroutine GRHydro_PoloidalMagFieldM(CCTK_ARGUMENTS)
press_dy = 0.5d0*(press(i,j+1,k)-press(i,j-1,k))/dy
press_dz = 0.5d0*(press(i,j,k+1)-press(i,j,k-1))/dz
- Aphi_dx = poloidal_A_b*rhofac**(poloidal_n_p-1)*maxP_Pcut* &
- ( rhofac*press_dx/delPcut - poloidal_n_p*rho_dx/poloidal_rho_max )
- Aphi_dy = poloidal_A_b*rhofac**(poloidal_n_p-1)*maxP_Pcut* &
- ( rhofac*press_dy/delPcut - poloidal_n_p*rho_dy/poloidal_rho_max )
- Aphi_dz = poloidal_A_b*rhofac**(poloidal_n_p-1)*maxP_Pcut* &
- ( rhofac*press_dz/delPcut - poloidal_n_p*rho_dz/poloidal_rho_max )
+ if (maxP_Pcut > 0.0) then
+ Aphi_dx = poloidal_A_b*( &
+ -poloidal_n_p*rho_dx/poloidal_rho_max*maxP_Pcut**poloidal_P_p &
+ +rhofac**poloidal_n_p*press_dx*poloidal_P_p*maxP_Pcut**(poloidal_P_p-1))
+ Aphi_dy = poloidal_A_b*( &
+ -poloidal_n_p*rho_dy/poloidal_rho_max*maxP_Pcut**poloidal_P_p &
+ +rhofac**poloidal_n_p*press_dy*poloidal_P_p*maxP_Pcut**(poloidal_P_p-1))
+ Aphi_dz = poloidal_A_b*( &
+ -poloidal_n_p*rho_dz/poloidal_rho_max*maxP_Pcut**poloidal_P_p &
+ +rhofac**poloidal_n_p*press_dz*poloidal_P_p*maxP_Pcut**(poloidal_P_p-1))
+ else
+ Aphi_dx = 0.0
+ Aphi_dy = 0.0
+ Aphi_dz = 0.0
+ endif
Ax_dy = -AphiL - y(i,j,k)*Aphi_dy
Ax_dz = -y(i,j,k)*Aphi_dz