Skip to content

pmontalb/PdeFiniteDifferenceKernels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PdeFiniteDifferenceKernels

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.

Types

  • 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

Convenience Structures

  • BoundaryCondition1D, BoundaryCondition2D: wrapper for left/right/up/down boundary conditions
  • FiniteDifferenceInput1D, FiniteDifferenceInput2D: wrapper for all the common inputs used by CUDA kernels

Kernels structure

I kept the same conventions used in CudaLightKernels

About

CUDA kernels for solving the most popular hyperbolic and parabolic PDEs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •