7 #if defined (HAVE_CUDA) 40 int ns, stage, i, nsims = TS->
nsims;
42 #if defined(HAVE_CUDA) 43 if (sim[0].solver.use_gpu) {
46 for (stage = 0; stage < params->nstages; stage++) {
48 double stagetime = TS->
waqt + params->c[stage]*TS->
dt;
50 for (ns = 0; ns < nsims; ns++) {
57 for (i = 0; i < stage; i++) {
59 (TS->
dt * params->A[stage*params->nstages+i]),
65 for (ns = 0; ns < nsims; ns++) {
66 if (sim[ns].solver.PreStage) {
67 fprintf(stderr,
"ERROR in TimeRK(): Call to solver->PreStage() commented out!\n");
77 for (ns = 0; ns < nsims; ns++) {
78 if (sim[ns].solver.PostStage) {
86 for (ns = 0; ns < nsims; ns++) {
96 for (ns = 0; ns < nsims; ns++) {
106 for (stage = 0; stage < params->nstages; stage++) {
108 for (ns = 0; ns < nsims; ns++) {
110 (TS->
dt * params->b[stage]),
114 (TS->
dt * params->b[stage]),
126 for (stage = 0; stage < params->nstages; stage++) {
128 double stagetime = TS->
waqt + params->c[stage]*TS->
dt;
130 for (ns = 0; ns < nsims; ns++) {
136 for (i = 0; i < stage; i++) {
138 (TS->
dt * params->A[stage*params->nstages+i]),
143 for (ns = 0; ns < nsims; ns++) {
144 if (sim[ns].solver.PreStage) {
145 fprintf(stderr,
"ERROR in TimeRK(): Call to solver->PreStage() commented out!\n");
155 for (ns = 0; ns < nsims; ns++) {
156 if (sim[ns].solver.PostStage) {
164 for (ns = 0; ns < nsims; ns++) {
173 for (ns = 0; ns < nsims; ns++) {
182 for (stage = 0; stage < params->nstages; stage++) {
184 for (ns = 0; ns < nsims; ns++) {
186 (TS->
dt * params->b[stage]),
190 (TS->
dt * params->b[stage]),
197 #if defined(HAVE_CUDA)
Structure of variables/parameters and function pointers for time integration.
Contains function definitions for common array operations on GPU.
Structure defining a simulation.
Some basic definitions and macros.
Contains function declarations for time integration.
void gpuArrayAXPY(const double *, double, double *, int)
int(* RHSFunction)(double *, double *, void *, void *, double)
void gpuArraySetValue(double *, int, double)
#define _ArrayAXPY_(x, a, y, size)
#define _ArraySetValue_(x, size, value)
int(* PostStage)(double *, void *, void *, double)
double * gpu_BoundaryFlux
double * StepBoundaryIntegral
Structure containing the parameters for an explicit Runge-Kutta method.
#define _ArrayCopy1D_(x, y, size)
Contains macros and function definitions for common array operations.
void gpuArrayCopy1D(const double *, double *, int)