
[Sponsors] 
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 P40 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, 11:53 

#3 
Member
Join Date: Aug 2010
Posts: 31
Rep Power: 7 
Hi Gijs,
Thanks for your reply, fvc::grad is using the Gauss integral theory to calculate the gradient at the cell center – so it's not what I was seeking for. As I can see now, the gradient at the face center will not be calculated within the snGrad calculation. The surface normal Gradient (for an orthogonal mesh) will be calculated directly by g[faceI]=(v[neighbour[faceI]]v[owner[faceI]])/d (This can be seen in src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme.C on line 142.) The calculation applies to internal Faces. For fully understanding I would like to know how the snGrad is calculated on boundary Faces. Maybe you (or someone else) can tell me where I can find the calculation for snGrad on the boundary faces. Thanks, Martin. 

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<class Type> Foam::tmp<Foam::Field<Type> > Foam::fvPatchField<Type>::snGrad() const { return (*this  patchInternalField())*patch_.deltaCoeffs(); } Now I will try to find out if there is a nonorthogonal mesh correction of the surface normal gradient on the boundary. M. 

March 17, 2011, 11:16 

#6 
New Member
Alicja M
Join Date: Mar 2009
Location: Erlangen, DE
Posts: 26
Rep Power: 8 

March 17, 2011, 15:13 

#7  
Senior Member
Gijsbert Wierink
Join Date: Mar 2009
Posts: 383
Rep Power: 9 
Hi Alicja,
Quote:
Quote:
__________________
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
Emad Tandis
Join Date: Sep 2010
Posts: 27
Rep Power: 7 
Quote:
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  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Error : Self intersecting surface mesh, computing intersections & Error : Impossible  velan  Open Source Meshers: Gmsh, Netgen, CGNS, ...  3  October 22, 2015 11:05 
Problem with Gmsh  nishant_hull  Open Source Meshers: Gmsh, Netgen, CGNS, ...  23  August 5, 2015 02:09 
boundaries with gmshToFoam  ouafa  Open Source Meshers: Gmsh, Netgen, CGNS, ...  7  May 21, 2010 12:43 
surface tension gradient on a free surface  Abrem  FLUENT  1  April 30, 2006 03:41 
CFX4.3 build analysis form  Chie Min  CFX  5  July 12, 2001 23:19 