
GPU Solver for 3D Simulation of Incompressible Viscous Fluid Flows Using PFEM-2
Please login to view abstract download link
We present a software implementation of the PFEM-2 method based on the CUDA technology. This software code was developed with our previous experience in mind but this time without using third-party libraries neither for a finite-element solver, nor for particle treatment. The source code is publicly available on Github (https://github.com/andreyypopov/gpuPfem2). The solver includes a finite-element part for solution of the Navier – Stokes equation without convection term on a fixed Eulerian tetrahedral grid. Traditional fractional-step approach is utilized in form of velocity prediction, Poisson pressure equation and velocity correction steps. We use our own implementation of GMRES and CG solvers with different preconditioners implemented using Cusparse and Cublas. Process of assembly of linear system only uses Gaussian quadrature formulae and first order shape functions at this moment. As the PFEM-2 algorithm implies, projection procedures are used to transfer velocity information from particles onto grid and vice versa. For projection from particles we use mean weighted by shape functions value. To ensure somewhat homogeneous particle distribution a specific procedure checks whether each sub-cell of the tetrahedral cell contains at least one particle. Then additional particles are added to empty sub-cells. The solver currently uses DAT format for input meshes and VTK for output of results. A number of test cases are available together with the source code. We mostly used flows past bodies (like circular cylinder and airfoil) for solver testing and verification.