Post-time-step function: this function is called at the end of each time step.
32 int ns, nsims = TS->
nsims;
39 #if defined(HAVE_CUDA)
40 if (sim[0].solver.use_gpu) {
47 for (ns = 0; ns < nsims; ns++) {
55 npts += (double)sim[ns].solver.npoints_global;
58 double global_sum = 0;
61 &(sim[0].mpi.world) );
63 TS->
norm = sqrt(global_sum/npts);
64 #if defined(HAVE_CUDA)
76 #if defined(HAVE_CUDA)
77 if (!sim[0].solver.use_gpu) {
79 for (ns = 0; ns < nsims; ns++) {
81 if (!strcmp(sim[ns].solver.ConservationCheck,
"yes")) {
95 if (sim[ns].solver.PostStep) {
100 #if defined(HAVE_CUDA)
111 double global_total = 0, global_wctime = 0, global_mpi_total = 0, global_mpi_wctime = 0;
116 #if defined(HAVE_CUDA)
Structure of variables/parameters and function pointers for time integration.
int MPISum_double(double *, double *, int, void *)
struct timeval iter_start_time
int MPIMax_double(double *, double *, int, void *)
INLINE double ArraySumSquarenD(int, int, int *, int, int *, double *)
int(* BoundaryIntegralFunction)(void *, void *)
struct timeval iter_end_time
int(* VolumeIntegralFunction)(double *, double *, void *, void *)
long sum(const std::vector< int > &a_iv)
Structure defining a simulation.
int(* CalculateConservationError)(void *, void *)
#define _ArrayAXPY_(x, a, y, size)
int(* PostStep)(double *, void *, void *, double, int)