accelerInt  v0.1
exprb43_props.cuh
Go to the documentation of this file.
1 
8 #ifndef RB43_PROPS_CUH
9 #define RB43_PROPS_CUH
10 
11 #include "header.cuh"
12 #include <cuComplex.h>
13 #include <stdio.h>
14 
15 #ifdef GENERATE_DOCS
16 namespace exprb43cu {
17 #endif
18 
19 
20 //if defined, uses (I - h * Hm)^-1 to smooth the krylov error vector
21 //#define USE_SMOOTHED_ERROR
23 #define P 4
24 #define ORD 3.0
26 #define M_MAX NSP
28 #define STRIDE (M_MAX + P)
30 #define MAX_STEPS (100000)
32 #define MAX_CONSECUTIVE_ERRORS (5)
34 
36 {
38  double* sc;
40  double* work1;
42  double* work2;
44  double* work3;
46  double* gy;
48  double* Hm;
50  double* phiHm;
52  double* Vm;
54  double* savedActions;
56  int* ipiv;
58  cuDoubleComplex* invA;
60  cuDoubleComplex* work4;
62  int* result;
63 };
64 
74 #define EC_success (0)
76 #define EC_consecutive_steps (1)
78 #define EC_max_steps_exceeded (2)
80 #define EC_h_plus_t_equals_h (3)
82 
90 #ifdef GENERATE_DOCS
91 }
92 #endif
93 
94 #endif
double * Vm
the Arnoldi basis array
double * work3
a work array
double * gy
The difference between RHS function and the Jacobian state vector product.
double * work1
a work array
double * work2
a work array
cuDoubleComplex * invA
the inverse of the Hessenberg Krylov subspace
double * sc
the scaled error coefficients
An example header file that defines system size, memory functions and other required methods for inte...
int * result
an array of integration results for the various threads
double * savedActions
Saved stage results.
cuDoubleComplex * work4
a (complex) work array
double * phiHm
the exponential Krylov subspace array for EXP4
int * ipiv
the pivot indicies
double * Hm
The Hessenberg Kyrlov subspace array for EXP4, to take the exponential action on. ...