# Some questions about Laplacian with nonorthogonal correction

 Register Blogs Members List Search Today's Posts Mark Forums Read

 December 2, 2012, 22:18 #2 Senior Member   Fumiya Nozaki Join Date: Jun 2010 Location: Yokohama, Japan Posts: 217 Blog Entries: 1 Rep Power: 11 Hi koderer, Thank you for your clarifying this topic. I'm also trying to fully understand the discretization of laplacian term. Below are my answers to your questions: 1) This point is not clear to me. Can somebody help me with it? 2) fvc::div(*fvm.faceFluxCorrectionPtr())().internalF ield() is already divided by the cell volume, so multiplying this term by the cell volume equals Σ_f (gamma_f * k & nabla(vf)_f). 3) The orthogonal contribution is evaluated by gamma_f*|s|*((phi_N-phi_P))/|d|, so I think the off-diagonal coefficient is gamma_f*|s|/|d| and the diagonal coefficient is -Σ_f (gamma_f*|s|/|d|) and the code is correct. Please correct the mistakes, if any. Hope that helps, fumiya

 December 12, 2012, 08:19 #3 New Member   Join Date: Jan 2012 Posts: 8 Rep Power: 7 Thank you for your answer, fumiya. 1) I'm glad i'm not the only one wondering. 2) Can you tell me the code lines where this is done? I am still not sure, because in the implicit counter part fvm::div is always used in a way that makes only sense without a built in division by the cell volume. 3) What you write seems reasonable, but the code lines i refer to seem to say the opposite. Can somebody help?

 December 12, 2012, 18:30 #4 Senior Member   Fumiya Nozaki Join Date: Jun 2010 Location: Yokohama, Japan Posts: 217 Blog Entries: 1 Rep Power: 11 Hi koderer, 1) In gaussLaplacianScheme.C Code: ```00052 tmp tdeltaCoeffs = 00053 this->tsnGradScheme_().deltaCoeffs(vf); 00054 const surfaceScalarField& deltaCoeffs = tdeltaCoeffs();``` and in .H file of each snGradSchemes (e.g. correctedSnGrad.H) Code: ```00093 //- Return the interpolation weighting factors for the given field 00094 virtual tmp deltaCoeffs 00095 ( 00096 const GeometricField& 00097 ) const 00098 { 00099 return this->mesh().nonOrthDeltaCoeffs(); 00100 }``` ,so I think the deltaCoeffs used to calculate the off-diagonal coefficients is corrected one to take into consideration the mesh non-orthogonality. Therefore, the coefficients calculated in the following line are gamma_f * |Delta|/|d|, where Delta is the vector defined in the Dr. Jasak's thesis(Eq. (3.32)). Code: `00066 fvm.upper() = deltaCoeffs.internalField()*gammaMagSf.internalField();` 2) I think the fvc::div operation to the surfaceScalarField is caluculated using the surfaceIntegrate function defined in the fvcSurfaceIntegrate.C and in this file Code: `00075 ivf /= mesh.V();` When we solve the pressure poisson equationfvm::laplacian(rAU, p) == fvc::div(phi), the fvc::div(phi) term is calculated in the same way. For explicit source terms, they are incorporated into an equation simply as a field of values. In this example fvc::div(phi) is volScalarField(not multiplied by the cell volume). Last edited by fumiya; December 16, 2012 at 06:11.

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post 7islands OpenFOAM Running, Solving & CFD 4 December 9, 2012 23:54 Alan OpenFOAM Running, Solving & CFD 10 April 6, 2012 14:02 maka OpenFOAM Running, Solving & CFD 9 October 25, 2011 10:55 stevenvanharen OpenFOAM Running, Solving & CFD 4 January 10, 2011 08:58 ssp OpenFOAM 0 May 4, 2010 04:02

All times are GMT -4. The time now is 02:58.