Hi, Since there is a similar topic on improving performance of CFD using PETSc earlier, I hope to improve my current CFD solver performance too.
I wrote it in Fortran90 with MPI. It is a Immersed Boundary Method (IBM) Navier-Stokes Cartesian grid solver in 2D, although I hope to extend it to 3D in the future. I solve the NS equations using fractional step which results in 2 equations - the momentum and Poisson equations. They are then linearized into systems of equations. I currently solve the momentum solver using PETSc with KSPBCGS. For the Poisson equation, I was using hypre's BoomerAMG. But I have changed to using the geometric multigrid solver from hypre since it's slightly faster. Currently, I am dividing my grid along the y direction for MPI into equal size for each processor. I guess this is not very efficient since beyond 4 processors, the scaling factor drops. I think implementing the distributed array should increase performance, is that so? I wonder how difficult it is because most examples are in C and I am not so used to that. I am also using staggered grid but I will most likely changed to a collocated grid arrangement. What other suggestions do you have to improve the solver's performance using PETSc? Thank you very much. Yours sincerely, TAY wee-beng
