diff options
-rw-r--r-- | src/GRHydro_LastMoLPostStep.c | 41 |
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; +} |