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

 February 14, 2011, 11:11 surface gradient #1 Member   Join Date: Aug 2010 Posts: 31 Rep Power: 7 Hi, in the openFoam programmer's guide on P-40 there is an explanation for the surface normal gradient: surfaceScalarField gradnq=fvc::snGrad(q); which gives (grad(q))_f*n_f. I want to calculate only grad(q)_f , it should be something like: surfaceVectorField gradq=????????(q); Maybe someone has an useful idea, thanks, M.

 March 8, 2011, 09:25 #2 Senior Member   Gijsbert Wierink Join Date: Mar 2009 Posts: 383 Rep Power: 9 Hi Martin, Isn't that simply fvc::grad()? Or am I missing the point of your question? __________________ Regards, Gijs

 March 9, 2011, 12:21 #4 Senior Member   Gijsbert Wierink Join Date: Mar 2009 Posts: 383 Rep Power: 9 Hi Martin, Right, I see . I am not entirely sure, but from the discussion here I gather that \$WM_PROJECT_DIR/applications/utilities/postProcessing/wall/wallGradU.C contains some hints. In particular, this might be interesting: Code: forAll(wallGradU.boundaryField(), patchi) { wallGradU.boundaryField()[patchi] = - U.boundaryField()[patchi].snGrad(); } __________________ Regards, Gijs

 March 10, 2011, 05:07 #5 Member   Join Date: Aug 2010 Posts: 31 Rep Power: 7 Hi Gijs, I think in your example snGrad() will also be used as a member function of the boundary field (patchfield). I think I have found the calculation in src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C in line 180: // Return gradient at boundary template Foam::tmp > Foam::fvPatchField::snGrad() const { return (*this - patchInternalField())*patch_.deltaCoeffs(); } Now I will try to find out if there is a non-orthogonal mesh correction of the surface normal gradient on the boundary. M. fumiya likes this.

 March 17, 2011, 11:16 #6 New Member   Alicja M Join Date: Mar 2009 Location: Erlangen, DE Posts: 26 Rep Power: 8 Hi, I have a simple question. I have volScalarField . I calculate fvc::grad(alpha1). This mean, im simplest case, i do: (1) fvc::grad(alpha) or (2) fvc::grad(alpha) ? (1) or (2) is the right one? And fvc::snGrad this is centr. diff. approx., or? Greetings, Alicja

March 17, 2011, 15:13
#7
Senior Member

Gijsbert Wierink
Join Date: Mar 2009
Posts: 383
Rep Power: 9
Hi Alicja,

Quote:
This is, in most cases, the right one (although it's sum_f Sf alpha_f. I say "most cases", because it can change a bit with the difference scheme used. What fvc::grad in the case above does, is use the values for alpha interpolated on the faces (alpha_f), multiply it with the relevant face vector (which is proportional to the face area), and then sum all of that up over the selection of faces (usually all, but not necessarily).

Quote:
 fvc::snGrad this is centr. diff. approx., or?
In a way yes, but normally used for boundary faces, snGrad is the surface normal gradient. Another important difference is that grad() is a vector field, while sngrad() is not ...
__________________
Regards, Gijs

 March 17, 2011, 16:21 #8 New Member   Alicja M Join Date: Mar 2009 Location: Erlangen, DE Posts: 26 Rep Power: 8 Hi Gijs! Thx for your Answer! I have a further question about fvc:: (alpha). I use the most simple discretisation scheme, 'Gauss linear'. I took a look at interFoam solver. I want to know, how is the curvature calculated. I have this to discretise: See interfaceProperties.C To calculate : firstly i calculate fvc::grad(alpha). So i 've run debug modus and i was in this class, gaussGrad.C firstly at line 134 and then at line 55. You see at the line 113 multiplikation with . Which term is the correct one, (1) or (2)? (1) fvc::grad(alpha) or (2) fvc::grad(alpha) ? I think the term (1) is the correct one. Perhaps later when i build the matrix or equation system i do multiply with . See fvMatrix.C at the line 1448. But i'm not sure. Greetings, Alicja Last edited by ala; March 18, 2011 at 03:26.

May 27, 2013, 06:30
#9
New Member

Join Date: Sep 2010
Posts: 27
Rep Power: 7
Quote:
 Originally Posted by ala Hi Gijs! Thx for your Answer! I have a further question about fvc:: (alpha). I use the most simple discretisation scheme, 'Gauss linear'. I took a look at interFoam solver. I want to know, how is the curvature calculated. I have this to discretise: See interfaceProperties.C To calculate : firstly i calculate fvc::grad(alpha). So i 've run debug modus and i was in this class, gaussGrad.C firstly at line 134 and then at line 55. You see at the line 113 multiplikation with . Which term is the correct one, (1) or (2)? (1) fvc::grad(alpha) or (2) fvc::grad(alpha) ? I think the term (1) is the correct one. Perhaps later when i build the matrix or equation system i do multiply with . See fvMatrix.C at the line 1448. But i'm not sure. Greetings, Alicja
Hello
the first one is true but not with dot product(.) . because it's for divergence not grad.

 August 30, 2013, 14:57 snGradient #10 Member   Join Date: Oct 2012 Posts: 47 Rep Power: 5 hi i need the formulation of crrected snGradien scheme for laplacian(Q) can help me?

 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 velan Open Source Meshers: Gmsh, Netgen, CGNS, ... 3 October 22, 2015 11:05 nishant_hull Open Source Meshers: Gmsh, Netgen, CGNS, ... 23 August 5, 2015 02:09 ouafa Open Source Meshers: Gmsh, Netgen, CGNS, ... 7 May 21, 2010 12:43 Abrem FLUENT 1 April 30, 2006 03:41 Chie Min CFX 5 July 12, 2001 23:19

All times are GMT -4. The time now is 11:31.