13#ifdef VIENNALS_GPU_BICGSTAB
23static constexpr uint32_t kNoNode = 0xFFFFFFFFu;
27struct GpuBiCGSTABBuffers;
31GpuBiCGSTABBuffers *allocGpuBuffers(uint32_t n,
int nFaces,
32 bool useIlu0Preconditioner);
35void freeGpuBuffers(GpuBiCGSTABBuffers *gpu);
38const char *gpuGetLastErrorMessage();
41bool gpuIsValid(
const GpuBiCGSTABBuffers *gpu);
45bool gpuUploadNeighborIds(GpuBiCGSTABBuffers *gpu,
const uint32_t *nb,
52bool gpuSetupCSR(GpuBiCGSTABBuffers *gpu,
const uint32_t *h_nb, uint32_t n,
57bool gpuUploadSolverArrays(GpuBiCGSTABBuffers *gpu,
const double *diag,
58 const double *b,
const double *coeff,
59 uint32_t diagLen, std::size_t coeffLen);
64bool gpuUploadRhs(GpuBiCGSTABBuffers *gpu,
const double *b, uint32_t n);
70bool gpuSolveBiCGSTAB(GpuBiCGSTABBuffers *gpu,
double *x,
double diagEps,
71 unsigned maxIter,
double tolerance,
72 unsigned &outIterations,
double &outResidual);
Definition lsAdvect.hpp:41