Calculate distance from vol to patch cells
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 Foam:patchWave::patchWave().distance() For this reason I've used (I don't think that properly) this function as follows: Code:
Code:
204901{1e+15} Thank you in advance. Héctor 
Have you looked into wallDist (https://github.com/OpenFOAM/OpenFOAM...ist/wallDist.H)? It should be what you need.
Caelan 
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 
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 
Thank you so much Caelan. So much appreciated! At the end it was much easier than I thought.

Quote:
Code:
label patchID = mesh.boundaryMesh().findPatchID("topo"); Code:
volScalarField gD 
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 
A Solution
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"); 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. 
All times are GMT 4. The time now is 18:19. 