aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2003-06-13 09:06:12 +0000
committerdiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2003-06-13 09:06:12 +0000
commit270d4606bcdd581c5251a51179f96c8c6b01bd4c (patch)
treed4e2dcd41e8dcfc0511a5393f036612cc22f5a4c
parentf7b5353dcdc301c459f61831d87857dfd67bbd00 (diff)
Added a parameter read_conformal_factor_once to support reading the
conformal factor only once (since it's not changed during the evolution). The user now only has to output staticconformal::psi at iteration 0, thereby saving some diskspace. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/EHFinder/trunk@117 2a26948c-0e4f-0410-aee8-f1d3e353619c
-rw-r--r--param.ccl4
-rw-r--r--schedule.ccl2
-rw-r--r--src/EHFinder_ReadData.F9018
3 files changed, 16 insertions, 8 deletions
diff --git a/param.ccl b/param.ccl
index 1d2a5ab..45e7cfb 100644
--- a/param.ccl
+++ b/param.ccl
@@ -21,6 +21,10 @@ KEYWORD eh_shift_type "Do we use numerical or analytic metric information"
"analytic" :: "Use external analytic metric"
} "analytic"
+BOOLEAN read_conformal_factor_once "Should the conformal factor only be read once"
+{
+} "yes"
+
KEYWORD initial_f "Initial surface choice"
{
"sphere" :: "spherical surface"
diff --git a/schedule.ccl b/schedule.ccl
index b26c5ab..76ae893 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -251,7 +251,7 @@ if (CCTK_Equals(eh_shift_type,"numerical"))
} "Read in shift from file"
}
-if (CCTK_Equals(metric_type,"static conformal") && CCTK_Equals(eh_metric_type,"numerical"))
+if (CCTK_Equals(metric_type,"static conformal") && CCTK_Equals(eh_metric_type,"numerical") && !read_conformal_factor_once)
{
schedule EHFinder_Read_Conformal at CCTK_PRESTEP
{
diff --git a/src/EHFinder_ReadData.F90 b/src/EHFinder_ReadData.F90
index 75d633f..08e3ce8 100644
--- a/src/EHFinder_ReadData.F90
+++ b/src/EHFinder_ReadData.F90
@@ -27,7 +27,7 @@ subroutine EHFinder_Read_Metric(CCTK_ARGUMENTS)
! saved) and the current iteration and save it in a string variable.
write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ saved_iteration_every * cctk_iteration
! Trim the string variable.
iteration_string = adjustl(iteration_string)
@@ -79,7 +79,7 @@ subroutine EHFinder_Read_Lapse(CCTK_ARGUMENTS)
CCTK_INT :: nc, res
write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ saved_iteration_every * cctk_iteration
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
@@ -108,7 +108,7 @@ subroutine EHFinder_Read_Shift(CCTK_ARGUMENTS)
CCTK_INT :: i, nc, ntot, res
write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ saved_iteration_every * cctk_iteration
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
@@ -144,8 +144,12 @@ subroutine EHFinder_Read_Conformal(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: nc, res
- write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ if ( read_conformal_factor_once .gt. 0 ) then
+ write(iteration_string,'(i10)') 0
+ else
+ write(iteration_string,'(i10)') last_iteration_number - &
+ saved_iteration_every * cctk_iteration
+ end if
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
@@ -173,7 +177,7 @@ subroutine EHFinder_Read_Mask(CCTK_ARGUMENTS)
CCTK_INT :: nc, res
write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ saved_iteration_every * cctk_iteration
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
@@ -202,7 +206,7 @@ subroutine EHFinder_ReadData(CCTK_ARGUMENTS)
CCTK_INT :: i, nc, ntot, res
write(iteration_string,'(i10)') last_iteration_number - &
- saved_iteration_every *cctk_iteration
+ saved_iteration_every * cctk_iteration
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)