|
[Sponsors] |
About nonorthogonal correction in fvclaplacian |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 26, 2007, 03:00 |
Hi,
I've been solving a wave
|
#1 |
Super Moderator
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20 |
Hi,
I've been solving a wave propagation equation which is represented by fairly a simple equation of fvm::d2dt2(phi) == c*fvc::laplacian(phi) where phi is a volScalarField and c is a scalar constant. Recently I was a little embarrassed to have found the uncorrected scheme (Gauss linear uncorrected) as the one for fvc::laplacian() gives much more stable solutions in tetrahedral meshes than the corrected one, because the correction should be meant for those kinds of non-orthogonal meshes. After some digging into literature I found in the Prof. Jasak's PhD thesis there are three ways of doing nonorthogonal correction: 1. Minimum correction approach 2. Orthogonal correction approach 3. Over-relaxed approach and it is concluded that the third approach (over-relaxation) gives the best overall results. However, this time by looking into the following files I realized that the actually implemented scheme is the second one (the orthogonal correction approach) if I'm not wrong. This finding makes me wonder why...? OpenFOAM-1.4/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme /gaussLaplacianScheme.C OpenFOAM-1.4/src/finiteVolume/finiteVolume/fvc/fvcDiv.C OpenFOAM-1.4/src/finiteVolume/finiteVolume/fvc/fvcSurfaceIntegrate.C OpenFOAM-1.4/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correct edSnGrad.C OpenFOAM-1.4/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpol ation/surfaceInterpolation.C As you can see from the equation above, precise evaluation of the laplacian term is virtually everything I need as of now. I'm gonna try other two approaches by myself but is there anyone with any comments, thoughts, or anyone who tried other implementations by any chance? Many thanks in advance, Takuya |
|
September 25, 2007, 15:33 |
I guess the Orthogonal correct
|
#2 |
Member
Patrick Bourdin
Join Date: Mar 2009
Posts: 40
Rep Power: 17 |
I guess the Orthogonal correction approach provides the minimum error when --for the sake of boundedness-- no correction is applied (ie when you compute only Grad(Phi).k where k is the vector defined in Hrv's thesis). This is not the case with the over-relaxed approach (k is 'longer' in that approach).
On the other hand, when non-orthogonal corrections are applied, the over-relaxed approach is the best because it can handle highly non-orthogonal mesh and converge faster. I would need the over-relaxed approach as well, because so far simpleFoam blows up on my tetrahedral mesh (severe non-orthogonality...). Hrv, any quick fix? (I can't recompile OF on our cluster, because those lazy system administrators didn't update Suse -- we're still under Suse 9.3 with gcc 3.5, arghhhhhhhh). Is it available in previous binary versions of OF? |
|
September 25, 2007, 15:39 |
Yup, use Gauss linear limited
|
#3 |
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33 |
Yup, use Gauss linear limited 0.5 as a laplacian scheme and upwind on all convection terms. If that does not work, your mesh is past its sell-by date
Hrv
__________________
Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk |
|
September 25, 2007, 20:18 |
Hi all,
I have to make my apo
|
#4 |
Super Moderator
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20 |
Hi all,
I have to make my apologies for my post above having turned out to be complete wrong: the nonorthogonal correction implemented in OF is actually over-relaxed approach. When I wrote the post above I still hadn't noticed deltaCoeffs() were alrealy corrected ones to reflect non-orthogonalities. And I have conducted a test with the three techniques proposed in Hrvoje's thesis and the over-relaxed approach sure gave the best result. With that said however, I am also one who have been looking for still better correction technique (if any)... Takuya |
|
December 9, 2012, 23:54 |
|
#5 | |
Senior Member
Fumiya Nozaki
Join Date: Jun 2010
Location: Yokohama, Japan
Posts: 266
Blog Entries: 1
Rep Power: 19 |
Hi,
I'm trying to understand how the non-orthogonal correction is done in OpenFOAM. You said that "deltaCoeffs() were alrealy corrected ones to reflect non-orthogonalities" and I have questions regarding this description. Q1) Where the correction to the deltaCoeffs is done in the code? In the "gaussLaplacianScheme.C", Quote:
Q2) Does this correction mean that the coefficient of laplace operator deltaCoeffs.internalField()*gammaMagSf.internalFie ld() equals (|Δ|/(|Sf||d|)) * Γf|Sf|? In the above equation, Δ is the vector defined in the Dr. Jasak's paper(over-relaxed approach Eq. (3.32)). Best regards, Fumiya Last edited by fumiya; December 10, 2012 at 01:56. |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Nonorthogonal correction | maka | OpenFOAM Running, Solving & CFD | 9 | October 25, 2011 11:55 |
When and how to apply nonOrthogonal correctors | vvqf | OpenFOAM Running, Solving & CFD | 1 | March 22, 2006 06:21 |
implementing FDM on nonorthogonal coordinate syste | yfyap | Main CFD Forum | 3 | June 13, 2001 17:51 |
on nonorthogonal boudary fitted coordinate | yf yap | Main CFD Forum | 2 | January 20, 2001 03:13 |
2nd derivative on nonorthogonal FV-mesh | Thomas Wolfanger | Main CFD Forum | 1 | June 29, 1999 12:00 |