aboutsummaryrefslogtreecommitdiff
path: root/interface.ccl
diff options
context:
space:
mode:
authorrhaas <rhaas@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2012-08-02 16:34:52 +0000
committerrhaas <rhaas@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2012-08-02 16:34:52 +0000
commit26067015fd74e5079d09a589fc3bab9e7fd13f22 (patch)
treea3939c89d8d4643ebf529722c1edfc8b8cbbe2a6 /interface.ccl
parent7923fe9d90ae7b78450708403bd7d451e0227d15 (diff)
MoL: add Multirate capabilities. This add three new multirate RK schemes to MoL.
Flags indicate whether it is time to execute slow RHS computation. For instance, in the RK4-RK2 scheme, there are 4 substeps in total, but the RK2 RHS are only evaluated in the very first and in the very last step of the four substeps. From: Christian Reisswig, minor changes by Roland Haas git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@175 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'interface.ccl')
-rw-r--r--interface.ccl27
1 files changed, 27 insertions, 0 deletions
diff --git a/interface.ccl b/interface.ccl
index fa72e0c..d2d14f9 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -34,14 +34,21 @@ USES FUNCTION EnableProlongating
CCTK_INT FUNCTION MoLRegisterEvolved(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
+CCTK_INT FUNCTION MoLRegisterEvolvedSlow(CCTK_INT IN EvolvedIndex, \
+ CCTK_INT IN RHSIndexSlow)
+
CCTK_INT FUNCTION MoLRegisterConstrained(CCTK_INT IN ConstrainedIndex)
CCTK_INT FUNCTION MoLRegisterSaveAndRestore(CCTK_INT IN SandRIndex)
CCTK_INT FUNCTION MoLRegisterEvolvedGroup(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
+CCTK_INT FUNCTION MoLRegisterEvolvedGroupSlow(CCTK_INT IN EvolvedIndex, \
+ CCTK_INT IN RHSIndexSlow)
CCTK_INT FUNCTION MoLRegisterConstrainedGroup(CCTK_INT IN ConstrainedIndex)
CCTK_INT FUNCTION MoLRegisterSaveAndRestoreGroup(CCTK_INT IN SandRIndex)
CCTK_INT FUNCTION MoLChangeToEvolved(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
+CCTK_INT FUNCTION MoLChangeToEvolvedSlow(CCTK_INT IN EvolvedIndex, \
+ CCTK_INT IN RHSIndexSlow)
CCTK_INT FUNCTION MoLChangeToConstrained(CCTK_INT IN ConstrainedIndex)
CCTK_INT FUNCTION MoLChangeToSaveAndRestore(CCTK_INT IN SandRIndex)
CCTK_INT FUNCTION MoLChangeToNone(CCTK_INT IN RemoveIndex)
@@ -49,17 +56,21 @@ CCTK_INT FUNCTION MoLQueryEvolvedRHS(CCTK_INT IN EvolvedIndex)
CCTK_INT FUNCTION MoLNumIntegratorSubsteps()
PROVIDES FUNCTION MoLRegisterEvolved WITH MoL_RegisterEvolved LANGUAGE C
+PROVIDES FUNCTION MoLRegisterEvolvedSlow WITH MoL_RegisterEvolvedSlow LANGUAGE C
PROVIDES FUNCTION MoLRegisterConstrained WITH MoL_RegisterConstrained \
LANGUAGE C
PROVIDES FUNCTION MoLRegisterSaveAndRestore WITH MoL_RegisterSaveAndRestore \
LANGUAGE C
PROVIDES FUNCTION MoLRegisterEvolvedGroup WITH MoL_RegisterEvolvedGroup \
LANGUAGE C
+PROVIDES FUNCTION MoLRegisterEvolvedGroupSlow WITH MoL_RegisterEvolvedGroupSlow \
+ LANGUAGE C
PROVIDES FUNCTION MoLRegisterConstrainedGroup WITH \
MoL_RegisterConstrainedGroup LANGUAGE C
PROVIDES FUNCTION MoLRegisterSaveAndRestoreGroup WITH \
MoL_RegisterSaveAndRestoreGroup LANGUAGE C
PROVIDES FUNCTION MoLChangeToEvolved WITH MoL_ChangeToEvolved LANGUAGE C
+PROVIDES FUNCTION MoLChangeToEvolvedSlow WITH MoL_ChangeToEvolvedSlow LANGUAGE C
PROVIDES FUNCTION MoLChangeToConstrained WITH MoL_ChangeToConstrained \
LANGUAGE C
PROVIDES FUNCTION MoLChangeToSaveAndRestore WITH MoL_ChangeToSaveAndRestore \
@@ -226,6 +237,17 @@ CCTK_INT MoL_Counters \
{
MoL_Intermediate_Step
MoL_Stepsize_Bad
+
+ # A flag indicating whether it is time for slow RHS evaluation.
+ # Oustide the MoL loop, it is guaranteed to be 1.
+ # It is only zero for certain MoL substeps when multirate methods are used.
+ MoL_SlowStep
+
+ # A flag indicating whether it is time for slow post step computations (e.g. applying BCs)
+ # Oustide the MoL loop, it is guaranteed to be 1.
+ # It is only zero for certain MoL substeps when multirate methods are used.
+ MoL_SlowPostStep
+
} "The counter for the time integration method"
CCTK_REAL MoL_Original_Time \
@@ -241,6 +263,11 @@ CCTK_REAL ScratchSpace[MoL_Num_Evolved_Vars*MoL_Num_Scratch_Levels] \
Timelevels = 1 \
TAGS = 'Prolongation="None" Checkpoint="no"'
+CCTK_REAL ScratchSpaceSlow[MoL_Num_Evolved_Vars_Slow*MoL_Num_Scratch_Levels] \
+ TYPE = GF \
+ Timelevels = 1 \
+ TAGS = 'Prolongation="None" Checkpoint="no"'
+
CCTK_REAL SandRScratchSpace[MoL_Num_SaveAndRestore_Vars] \
TYPE = GF \
Timelevels = 1 \