
[Sponsors] 
June 10, 2019, 06:31 
Calculate distance from vol to patch cells

#1 
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 4 
Hello!
I'm a very beginner in OpenFoam programming, and I would like to ask the community some help with an issue I have not been able to find any information of in this forum, or even in google. First of all I am modelling the wind over complex terrain. I have introduced some source terms in the equations that depend on the vertical coordinate. The problem is that I need to fix the reference for the z coordinate over the ground and not over the plane z=0. Therefore I need to subtract from every cell z coordinate in the volume mesh the corresponding height of the coincident (x,y) point of the ground. I have think of the function FoamatchWave:atchWave().distance() For this reason I've used (I don't think that properly) this function as follows: Code:
label patchID = mesh.boundaryMesh().findPatchID("terrain"); scalarField d;//distances are stored in this variable patchWave w(mesh, patchID, true); d = w.distance(); Code:
204901{1e+15} Thank you in advance. Héctor 

June 10, 2019, 07:11 

#2 
Senior Member
Join Date: Aug 2015
Posts: 464
Rep Power: 11 
Have you looked into wallDist (https://github.com/OpenFOAM/OpenFOAM...ist/wallDist.H)? It should be what you need.
Caelan 

June 10, 2019, 07:21 

#3 
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 4 
Thank you so much for your suggestion. The fact is that I saw this function but I didn't know how to extract a new volScalarField from the function wallDist. Could you guide me a little?
I know that the functions that wallDist has return a newmesh with updateMesh. But my goal is obtain a volscalarField with all the cell distances to the required patch. Thank you so much for your patience. Héctor 

June 10, 2019, 07:43 

#4 
Senior Member
Join Date: Aug 2015
Posts: 464
Rep Power: 11 
Fair warning  I'm not sure if I've used it before, but I've seen it in e.g. turbulence models. I pulled this snippet from the kOmegaSST base... it might help :
Code:
y_(wallDist::New(this>mesh_).y()) Caelan 

June 11, 2019, 02:46 

#5 
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 4 
Thank you so much Caelan. So much appreciated! At the end it was much easier than I thought.


March 8, 2021, 05:52 

#6  
New Member
H Fossum
Join Date: Jan 2021
Posts: 3
Rep Power: 2 
Quote:
Code:
label patchID = mesh.boundaryMesh().findPatchID("topo"); wallDist wD(mesh, patchID, "wall"); gD = wD.y(); Code:
volScalarField gD ( IOobject ( "gD", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh ); 

April 6, 2021, 09:48 

#7  
New Member
Jérémy Chevalier
Join Date: Feb 2021
Posts: 4
Rep Power: 2 
Quote:
Hi all, I have the same problem as you, has anyone found the solution? The function wallDist return a internalField equal to 1e+15. Thank you ! Edit : In fact it was just a problem in the boundaries settings Last edited by JeremyChvlr; April 7, 2021 at 06:02. 

April 8, 2021, 04:15 
A Solution

#8 
New Member
H Fossum
Join Date: Jan 2021
Posts: 3
Rep Power: 2 
I eventually found a working solution to this problem. I will post it here for future reference, even if no one may need it at the moment.
I set up a volScalarField, called gD, in the same way described in my earlier post. To calculate the distance to one specific wall, I do the following Code:
label patchID = mesh.boundaryMesh().findPatchID("nameOfSpecificWall"); labelHashSet myPatchSet; myPatchSet.insert(patchID); wallDist wD(mesh, myPatchSet, "wall"); gD = wD.y(); I also have a followup question, if anyone knows the answer: Is it possible to compute the distance to a wall using only one component of the distance, e.g. the zdirection? I tried directionalMeshWave, but that did not work as I was hoping. 

Tags 
distance, patch, vertical distance 
Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
[snappyHexMesh] SnappyHexMesh running killed!  Mark JIN  OpenFOAM Meshing & Mesh Conversion  3  March 12, 2020 17:50 
y+ and u+ values with lowRe RANS turbulence models: utility + testcase  florian_krause  OpenFOAM  113  June 25, 2019 00:58 
[snappyHexMesh] sHM layer process keeps getting killed  MBttR  OpenFOAM Meshing & Mesh Conversion  4  August 15, 2016 03:21 
[snappyHexMesh] snappyHexMesh won't work  zeros everywhere!  sc298  OpenFOAM Meshing & Mesh Conversion  2  March 27, 2011 21:11 
[snappyHexMesh] snappyHexMesh aborting  Tobi  OpenFOAM Meshing & Mesh Conversion  0  November 10, 2010 03:23 