aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GRHydro_LastMoLPostStep.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/GRHydro_LastMoLPostStep.c b/src/GRHydro_LastMoLPostStep.c
new file mode 100644
index 0000000..1ccc4b4
--- /dev/null
+++ b/src/GRHydro_LastMoLPostStep.c
@@ -0,0 +1,41 @@
+// GRHydro_LastMoLPostStep.c
+//
+// Compute is this is the last MoL PostStep call. Code taken from Christian
+// Reisswig's rejected MoL changes.
+//
+// Roland Haas
+// Sun Jun 3 17:35:53 PDT 2012
+
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+
+void GRHydro_SetLastMoLPostStep(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+
+ const CCTK_INT *MoL_Intermediate_Step =
+ CCTK_VarDataPtr(cctkGH,0,"MoL::MoL_Intermediate_Step");
+ if(NULL == MoL_Intermediate_Step)
+ {
+ CCTK_WARN(CCTK_WARN_ABORT,
+ "Could not get data pointer for MoL::MoL_Intermediate_Step");
+ }
+
+ // If counter becomes zero, the only thing left to do is to call PostStep!
+ if (*MoL_Intermediate_Step == 0)
+ *InLastMoLPostStep = 1;
+ else
+ *InLastMoLPostStep = 0;
+}
+
+void GRHydro_ClearLastMoLPostStep(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+
+ *InLastMoLPostStep = 0;
+}