updated in year 2013.
This version just tide the API, using struct clmat to wrap the 3 parameter, I think it will reduce the chance of mismatched parameters.
Since OpenFoam need update the boundary condition to build the matrix A ( to solve Ax=b ) multiple runs, it is not as efficient as a pure Ax=b sparse matrix problem.
I did this piece of work, just to practice openCL, to understand OpenFoam source code better when I was hunting jobs during PhD writing up stage.
However, I have other liability in my new jobs. I need to learn more of EEE stuff, I can not update the code to OpenFoam 2.x. Since the matrix solving code is mature, it should work with OpenFoam 2.x, with or without tiny tuning.
Sorry for this.
Features expected in clFoam v0.2 , plan on Oct 2011. (now outdated in year 2013, I will not finish all these features)
(1) double precision support
/clUtils no error for DP, but clFoam exit in clBuildProgram() , no error code is provided. it just stop to work it that the optimization level -O3 may cause error!WM_OPTIONS = clBuildProgram => need to recompile.
I just wonder if the -O3 optimization of wmake is conflicting with OpenCL on some GPU. I have encounter this problems on viennaCL test, -g is correct, -O2/-O3 error.
(2) VclFoam debug
error when make preconditioner for compressed_matrix
(3) setup git project repo on localhost / or host remotely
(4) Multiple GPU support, compatible with MPI domain decomposition
=> there must be 4 GPUs if set nProcs=4 for mpirun on a single node
=> just allocate an avaible GPU to MPI process.
(5) using clFoamControlDict, need not to recompile for parameter adjustment
=> almost done
(6) Other solvers , DSMC GAM
(7) enhance the clUtils C library. opencl generate random number
CC-BY-NC 4.0 licensed free for non-commercial usage
Author: Qingfeng XIA
copyright (C) 2011-2020
please keep the original link in your reference.