I am currently solving PDEs using the finite volume method. The surface integrals of the equations that I am solving involves computing face gradients. The current algorithm that we use to compute face gradients is $$\nabla\phi_{face}=\frac{1}{2}(\nabla\phi_L + \nabla\phi_R) - \boldsymbol{\hat{d}}(\frac{1}{2}(\nabla\phi_L + \nabla\phi_R)\cdot\boldsymbol{\hat{d}})+(\phi_L-\phi_R)\frac{\boldsymbol{\hat{d}}}{|\boldsymbol{d}|}$$ The LHS is the face gradient of some quantity $\phi$. $\nabla\phi_L$ and $\nabla\phi_R$ are the cell gradients at the left and right neighboring cells of the face, respectively. $\boldsymbol{\hat{d}}$ and $\boldsymbol{d}$ are the unit distance and distance vector between the left and right cell centers, respectively. The RHS consists of 3 terms. The latter 2 terms are the "odd-even decoupling" correction terms that are applied to avoid numerical oscillations that would otherwise arise if the computation of the face gradient was a simple averaging (i.e., just the first term on the RHS).

I have some questions regarding odd-even decoupling: (1) Is odd-even decoupling also necessary for computing non-gradient values at the face? For example, if instead of computing the temperature gradient at the face, I instead wanted the temperature at that face. (2) Is there a variant of this equation for non-gradient terms? For example, what if I just want to compute a face value? This equation can almost be duplicated for a plain $\phi$, non-gradient, term if it weren't for the 3rd term on the RHS.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.