abarret / multiphase-stokes

Solver a mixture of fluids based on IBAMR
1 stars 0 forks source link

Performance degradation when running in parallel #30

Open bindi-nagda opened 1 year ago

bindi-nagda commented 1 year ago

When running the target time_stepping or fluid_multigrid one more than one processor, with USE_PRECOND = TRUE, the relative residual decreases very, very slowly. The solver doesn't converge to the given rtol within the prescribed _ksp_maxit. The issue may be with the grid generation for the coarser levels with the multigrid solver.

Running on multiple processors without preconditioning doesn't affect the performance.

abarret commented 1 year ago

This is almost definitely the grid generation in the multigrid solver. It currently takes the coarsest level in the original patch hierarchy and coarsens each patch to generate a new level. If there are multiple patches on the coarsest level in the original patch hierarchy, this generation can lead to coarse levels with patches that are one grid cell wide (or if the number of grid cells is not a power of 2, eventually overlapping patches).

The correct behavior would be to generate coarse levels based on a gridding algorithm such that a minimum patch size is enforced.