Prediction of gradient at the cell center for cell-centered finite volume method
Dear CFDer,
As you know, when I implement cell-centered finite volume discretization, I need to calculate the gradient at each cell center, which will be used in the numerical schemes for convection and diffusion terms. I found that this will slow down my simulations because before I start the face looping of numerical fluxes for the convection and diffusion terms, the gradients should be known in advance. I use Green-Gauss method to predict the cell center gradients, which means that the complete face looping is also needed. So, in this sense, I need to do two cycle of face sweepings: one for gradient (this should be performed first) and another for numerical fluxes. This obviously slow down my code. Since I guess this is classic problem in FV CFD, does anybody have some suggestions about the appraoches to efficiently calculate the cell ceter gradients without loss of computation speed? Thank you so much, OFFO |
The standard Green-Gauss based gradient can clearly be computed trough a face loop, you just need to... do it. For each face in the loop you just need to update all the relevant gradient terms in the two cells sharing the face. Obviously, you will still need to compute the gradient in a preliminary face loop before using it.
The same should be possible even for the least-squares approach (probably more cumbersone) |
Thank you!
I did loop all the face first, which need computational time. This is my concern. Because I need loop all faces first and then do the looping again to calculate the numerical fluxes. Any more comments? Thank you. Quote:
|
I'm sorry, i don't know of any other obvious (or not) way to do it.
Consider that, in general, you should do it more than twice to keep with the iterations. How much slow down are we talking about? |
Yes, you are right. Thank you.
|
All times are GMT -4. The time now is 23:23. |