aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@d576a68a-b34a-40ae-82fc-004fa1a9d16f>2014-05-27 15:11:27 +0000
committerrhaas <rhaas@d576a68a-b34a-40ae-82fc-004fa1a9d16f>2014-05-27 15:11:27 +0000
commit46b38b18a7bd67c39b2d35003554f4db8f07cf59 (patch)
treecc31bdd245af77d5463d94bd89a43b087fdedc57
parenta4b403597bf17c3ed6d67efa522175d6fd9465a9 (diff)
add evolutin methods "ID-apply-always", "ID-apply-regrid"svn
These methods are similar to "static" in that they can be used for Cowling runs, they differ from "static" in that ID-apply-regrid only schedules the initial data routine after any grid changes and that both do not apply boundary conditions or SYNC calls. They can thus be used if one can compute the required metric/shift/lapse easily in a pointwise manner and would like to have exact (non-prolongated) data in the buffer zones. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinBase/ADMBase/trunk@80 d576a68a-b34a-40ae-82fc-004fa1a9d16f
-rw-r--r--param.ccl22
-rw-r--r--schedule.ccl40
2 files changed, 53 insertions, 9 deletions
diff --git a/param.ccl b/param.ccl
index 7a0e27e..7e08c53 100644
--- a/param.ccl
+++ b/param.ccl
@@ -35,28 +35,38 @@ KEYWORD initial_dtshift "Initial dtshift value"
KEYWORD evolution_method "The metric an extrinsic curvature evolution method"
{
- "none" :: "The metric and extrinsic curvature are not evolved"
- "static" :: "The metric and extrinsic curvature are not evolved"
+ "none" :: "The metric and extrinsic curvature are not evolved"
+ "static" :: "The metric and extrinsic curvature are not evolved"
+ "ID-apply-regrid" :: "The metric and extrinsic curvature are not evolved and initial data is used to fill in new grid points after regridding"
+ "ID-apply-always" :: "The metric and extrinsic curvature are not evolved and initial data is used to fill in new grid points before each step and after grid changes"
} "static"
KEYWORD lapse_evolution_method "The lapse evolution method"
{
- "static" :: "lapse is not evolved"
+ "static" :: "lapse is not evolved"
+ "ID-apply-regrid" :: "lapse is not evolved and initial data is used to fill in new grid points after regridding"
+ "ID-apply-always" :: "lapse is not evolved and initial data is used to fill in new grid points before each step and after grid changes"
} "static"
KEYWORD shift_evolution_method "The shift evolution method"
{
- "static" :: "shift is not evolved"
+ "static" :: "shift is not evolved"
+ "ID-apply-regrid" :: "shift is not evolved and initial data is used to fill in new grid points after regridding"
+ "ID-apply-always" :: "shift is not evolved and initial data is used to fill in new grid points before each step and after grid changes"
} "static"
KEYWORD dtlapse_evolution_method "The dtlapse evolution method"
{
- "static" :: "dtlapse is not evolved"
+ "static" :: "dtlapse is not evolved"
+ "ID-apply-regrid" :: "dtlapse is not evolved and initial data is used to fill in new grid points after regridding"
+ "ID-apply-always" :: "dtlapse is not evolved and initial data is used to fill in new grid points before each step and after grid changes"
} "static"
KEYWORD dtshift_evolution_method "The dtshift evolution method"
{
- "static" :: "shift is not evolved"
+ "static" :: "shift is not evolved"
+ "ID-apply-regrid" :: "dtshift is not evolved and initial data is used to fill in new grid points after regridding"
+ "ID-apply-always" :: "dtshift is not evolved and initial data is used to fill in new grid points before each step and after grid changes"
} "static"
diff --git a/schedule.ccl b/schedule.ccl
index 3570aff..ae1c1b8 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -196,7 +196,8 @@ if (CCTK_Equals(initial_dtshift, "zero"))
-if (CCTK_Equals(lapse_evolution_method, "static"))
+if (CCTK_Equals(lapse_evolution_method, "static") ||
+ CCTK_Equals(lapse_evolution_method, "ID-apply-always"))
{
SCHEDULE ADMBase_LapseStatic in CCTK_PRESTEP
{
@@ -204,7 +205,8 @@ if (CCTK_Equals(lapse_evolution_method, "static"))
} "Copy the lapse to the current time level"
}
-if (CCTK_Equals(shift_evolution_method, "static"))
+if (CCTK_Equals(shift_evolution_method, "static") ||
+ CCTK_Equals(shift_evolution_method, "ID-apply-always"))
{
SCHEDULE ADMBase_ShiftStatic in CCTK_PRESTEP
{
@@ -212,7 +214,9 @@ if (CCTK_Equals(shift_evolution_method, "static"))
} "Copy the shift to the current time level"
}
-if (CCTK_Equals(evolution_method, "static") || CCTK_Equals(evolution_method, "none"))
+if (CCTK_Equals(evolution_method, "static") ||
+ CCTK_Equals(evolution_method, "none") ||
+ CCTK_Equals(evolution_method, "ID-apply-always"))
{
SCHEDULE ADMBase_Static in CCTK_PRESTEP
{
@@ -248,6 +252,36 @@ if (CCTK_Equals(evolution_method, "static") || CCTK_Equals(evolution_method, "no
}
+if (CCTK_Equals(evolution_method, "ID-apply-regrid") ||
+ CCTK_Equals(evolution_method, "ID-apply-always"))
+{
+ SCHEDULE group ADMBase_InitialData at CCTK_POSTREGRID
+ {
+ } "Schedule group for calculating ADM initial data"
+
+ SCHEDULE group ADMBase_InitialData at CCTK_POSTREGRIDINITIAL
+ {
+ } "Schedule group for calculating ADM initial data"
+}
+
+if (CCTK_Equals(lapse_evolution_method, "ID-apply-regrid") ||
+ CCTK_Equals(shift_evolution_method, "ID-apply-regrid") ||
+ CCTK_Equals(dtlapse_evolution_method, "ID-apply-regrid") ||
+ CCTK_Equals(dtshift_evolution_method, "ID-apply-regrid") ||
+ CCTK_Equals(lapse_evolution_method, "ID-apply-always") ||
+ CCTK_Equals(shift_evolution_method, "ID-apply-always") ||
+ CCTK_Equals(dtlapse_evolution_method, "ID-apply-always") ||
+ CCTK_Equals(dtshift_evolution_method, "ID-apply-always"))
+{
+ SCHEDULE group ADMBase_InitialGauge at CCTK_POSTREGRID after ADMBase_InitialData BEFORE MoL_PostStep
+ {
+ } "Schedule group for the ADM initial gauge condition"
+
+ SCHEDULE group ADMBase_InitialGauge at CCTK_POSTREGRIDINITIAL after ADMBase_InitialData BEFORE MoL_PostStep
+ {
+ } "Schedule group for the ADM initial gauge condition"
+}
+
# TODO: Rename this group to "ADMBase_HaveBeenSet"?
SCHEDULE GROUP ADMBase_SetADMVars IN MoL_PostStep
{