|
[Sponsors] |
![]() |
![]() |
#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 Foam ![]() ![]() 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 |
|
![]() |
![]() |
![]() |
![]() |
#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 |
|
![]() |
![]() |
![]() |
![]() |
#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 |
|
![]() |
![]() |
![]() |
![]() |
#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 |
|
![]() |
![]() |
![]() |
![]() |
#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.
|
|
![]() |
![]() |
![]() |
![]() |
#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 ); |
||
![]() |
![]() |
![]() |
![]() |
#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 06:02. |
||
![]() |
![]() |
![]() |
![]() |
#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 |
|
|
![]() |
||||
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 05:37 |
[snappyHexMesh] SnappyHexMesh running killed! | Mark JIN | OpenFOAM Meshing & Mesh Conversion | 7 | June 14, 2022 01:37 |
[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 |