This API is a collection of CUDA kernels used for solving Partial Differential Equations (PDE) by means of Finite Difference.
The extent of this API is to provide a library for applying the Method of Lines (MoL) to (up to) 3D hyperbolic and parabolic PDEs. Note that I wrote no support for elliptic PDEs.
The goal was to write the smallest amount of lines of code, and re-use of all my existing CUDA code, see CudaLight and CudaLightKernels. For this reason I decided to focus my attention to just linear PDE with no source term, so that everything can be solved by the application of a linear operator.
- SolverType: defines the time discretization solver type: the most popular ODE methods are there
- SpaceDiscretizerType: defines the space discretization type: One-sided, Centered and Lax-Wendroff-Style
- BoundaryConditionType: defines the boundary conditions: Dirichlet, Neumann and Periodic
- BoundaryCondition1D, BoundaryCondition2D: wrapper for left/right/up/down boundary conditions
- FiniteDifferenceInput1D, FiniteDifferenceInput2D: wrapper for all the common inputs used by CUDA kernels
I kept the same conventions used in CudaLightKernels