i programmed two codes using staggered and collocated grids to solve the incompressible N-S equation in a Cartesian box with no-slip boundary condition (lid driven flow). i used predictor-corrector method to decouple velocity and pressure and imposed zero normal gradient for pressure boundary condition in both codes. in the code of staggered grids, everything is fine whereas in the code of collocated grids the velocity is fine but the pressure drops always and cannot converge. could anyone help me give the reason why collocated grids cannot do this job? many thanks.
"i used predictor-corrector method to decouple velocity and pressure" this is unprofessional statement. coz predictor corrector is a time marching scheme, while the decoupling of velocity and pressure is a different issue (the issue of how to fight stiffness/illness of a system), though often involved with time scheme. i will give answer to you question...
the direct reason that staggered grid works while collocated grids fails: for an array of probelms with not-generally-correct boundary conditions, the staggered grid has a built-in mechanism to avoid trouble. for example, if you add body force to the system and your interest is in the velocity field, then on the staggered grid the the gravity will be automatically taken care of by the pressure which should be the case in the continuous sense ( gravitational potential can be simply added to the pressure). in contrast, on the collcoated grid, if the boundary conditions are not really correctly set -- which is the case in the most practice, there is a portion of gravitational influence goes into the velocity field -- which is wrong. invented in 1965 by a great numerical scientist in los almos, MAC staggered grid is sort of the most efficient grid for finite volume and finite difference methods. one reason is widely known: for example, it is the spatial gradient of pressure and the zero spatial derivative of (though first temporal derivative in time) velocity staying in the same equation, so they should be staggered from each other. the second reason is less known: some inefficient discrete quantities are removed (staggered grid is the consequenc of removal of some infficient discrete quantities on some primitive grid). local conservation has sort of connection with staggered grid, but they are not the same aspect of neumerical methods at all. in contrast, the collocation grid is simple minded discretization of space and is proven poor in performance. there is a universal phenomena of conditioning. but i am worried the time is up & i have to take off soon...
【在 k*********g 的大作中提到】 : the direct reason that staggered grid works while collocated grids fails: : for an array of probelms with not-generally-correct boundary conditions, the : staggered grid has a built-in mechanism to avoid trouble. for example, if : you add body force to the system and your interest is in the velocity field, : then on the staggered grid the the gravity will be automatically taken care : of by the pressure which should be the case in the continuous sense ( : gravitational potential can be simply added to the pressure). in contrast, : on the collcoated grid, if the boundary conditions are not really correctly : set -- which is the case in the most practice, there is a portion of : gravitational influence goes into the velocity field -- which is wrong.