|
[Sponsors] |
June 10, 2019, 07:31 |
Calculate distance from vol to patch cells
|
#1 |
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 8 |
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, 08:11 |
|
#2 |
Senior Member
Join Date: Aug 2015
Posts: 494
Rep Power: 15 |
Have you looked into wallDist (https://github.com/OpenFOAM/OpenFOAM...ist/wallDist.H)? It should be what you need.
Caelan |
|
June 10, 2019, 08:21 |
|
#3 |
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 8 |
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, 08:43 |
|
#4 |
Senior Member
Join Date: Aug 2015
Posts: 494
Rep Power: 15 |
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, 03:46 |
|
#5 |
New Member
HBR
Join Date: Jun 2018
Posts: 6
Rep Power: 8 |
Thank you so much Caelan. So much appreciated! At the end it was much easier than I thought.
|
|
March 8, 2021, 06:52 |
|
#6 | |
New Member
H Fossum
Join Date: Jan 2021
Posts: 3
Rep Power: 5 |
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, 10:48 |
|
#7 | |
New Member
Jérémy Chevalier
Join Date: Feb 2021
Posts: 10
Rep Power: 5 |
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 07:02. |
||
April 8, 2021, 05:15 |
A Solution
|
#8 |
New Member
H Fossum
Join Date: Jan 2021
Posts: 3
Rep Power: 5 |
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 follow-up 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 z-direction? I tried directionalMeshWave, but that did not work as I was hoping. |
|
Tags |
distance, patch, vertical distance |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
y+ and u+ values with low-Re RANS turbulence models: utility + testcase | florian_krause | OpenFOAM | 114 | August 23, 2023 06:37 |
[snappyHexMesh] SnappyHexMesh running killed! | Mark JIN | OpenFOAM Meshing & Mesh Conversion | 7 | June 14, 2022 02:37 |
[snappyHexMesh] sHM layer process keeps getting killed | MBttR | OpenFOAM Meshing & Mesh Conversion | 4 | August 15, 2016 04:21 |
[snappyHexMesh] snappyHexMesh won't work - zeros everywhere! | sc298 | OpenFOAM Meshing & Mesh Conversion | 2 | March 27, 2011 22:11 |
[snappyHexMesh] snappyHexMesh aborting | Tobi | OpenFOAM Meshing & Mesh Conversion | 0 | November 10, 2010 04:23 |