I wanted to know a bit more regarding the discretisation of the diffusion terms (and poisson equation). From the documentation I gathered that the normal components are treated implicitly, but I could not find if/how the non-orthogonal components were treated.
Thanks in advance,
The non-orthogonal components are treated explicitly and thus also tend to destabilise the calculations for highly non-orthogonal meshes.
I am open to suggestions on how to improve on this.
The Thesis by Hrvoje Jasak includes a discussion on the treatment of the non-orthogonal components (link: http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/docs/HrvojeJasakPhD.pdf ). From what I gathered he suggest using the "over-relaxed approach" (see thesis for more explanation). I haven't gone through a practical implementation, but it is consistent with what I have seen in the past. Let me know what you think.
Note that I only have an exert from the thesis (about 90 pages) which focus on the face-addressing discretisation.
Sorry to reply so late to this thread, but there is another way to construct non-orthogonal terms for badly skewed cells. For faces that violate some skewness threshhold (say, some limit on the angle between the face normal with line connecting the two adjacent cell centroids). For these faces, you can construct a local shape function (like f(x,y) = a+bx+cy+dxy+ex^2_fy^2)) using the six nearest neighbors (or more, if you do it in a least squares sense). Then take the gradient and dot it with the face normal to build the diffusive flux…or convection flux, too. This can all be done implicitly…just like in finite element formulations. It will lead to implicit coefficients to multiple cells instead of just the two cells sharing the faces, but it will remove the instability due to lagged gradients being explicitly interpolated to the face and pushed to the RHS. I don't know enough about OpenFVM to say if this is easily doable. Some solvers marry the matrix structure to mesh structure (one-to-one correspondence between faces and off-diagonal coefficients). It is not clear to me that only lagging the old cell values except for C0 and C1 will be stabilizing. Fluent 14 touts some new feature for dealing with badly skewed grids. I suspect it is doing something similar to this.