|
[Sponsors] |
September 13, 2010, 15:59 |
Cell size (x,y,z)
|
#1 |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Hi folks,
I'm trying to write an apllication on openfoam wich utilizes the surface compression to produce an initial condition as a wave in a two phase environment, in this code I need to call the individual cells in a loop and use their height, length and depth(x,y,z Dimensions) , The problem is, I don't seem to find the access function for that, the only thing I find is the V() access function which gives the volume of the cell. So in desperation , I am open to any suggestion. Thanks, |
|
September 14, 2010, 05:39 |
|
#2 |
Senior Member
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23 |
You can get a list of vertices using mesh.points();
Have you looked at fvMesh, polyMesh and primitiveMesh in the doxygen pages? Between them there must be the functionality you're looking for.
__________________
Laurence R. McGlashan :: Website |
|
September 14, 2010, 07:11 |
|
#3 |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Hi l_r_mcglashan
thanks for the reply, I will look it up in Doxygen, then I would keep ya posted later today |
|
September 14, 2010, 07:17 |
|
#4 | |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Quote:
thanks for the reply, I will look it up in Doxygen, then I would keep ya posted later today |
||
September 14, 2010, 10:34 |
|
#5 | |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Quote:
It's weird because OpenFOAM should use the dimensions to calculate the volume of cell V(). I dont know how else could it do that???? any other suggestions?? |
||
September 14, 2010, 10:44 |
|
#6 |
Senior Member
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23 |
If you click through the documentation you'll find the cell volume calculation in the function:
Code:
Foam::primitiveMesh::makeCellCentresAndVols
__________________
Laurence R. McGlashan :: Website |
|
September 14, 2010, 11:38 |
|
#7 | |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Quote:
Yep that's right, it's actually just a box, but with an insane amount of cells. because it is needed to validate our calculations in next step of the work. as a initial condition a simple wave is being introduced to the interface of the water-air, and it would vibrate to become a line . the things is we have written a code already that puts the wave at the interface, but every time we change the Mesh we have to change the code with the new cell sizes. (it is something like setFieldsdict in dam break example) I just want to automate it so that it could change itself after every change in Mesh. Did I make it clear? I still haven't found any useful access function for the cell dim. Thanks |
||
September 14, 2010, 12:27 |
|
#9 | |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Quote:
respectively these cells would be assigned a number between 0 and 1. 0 for gas phase and 1 for liquid. So it's not enough to have the center, the hight of the cell gives us actually how much of the cell is placed in liquid or gas phase , and the number makes it understandable for OpenFOAM. |
||
September 14, 2010, 12:47 |
|
#10 |
Senior Member
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Copenhagen, Denmark
Posts: 1,903
Rep Power: 37 |
Hi Armin
What you need to do is the following: Code:
const faceList & ff = mesh.faces(); const pointField & pp = mesh.points(); forAll ( mesh.C(), celli) { const cell & cc = mesh.cells()[celli]; labelList pLabels(cc.labels(ff)); pointField pLocal(pLabels.size(), vector::zero); forAll (pLabels, pointi) pLobal[pointi] = pp[pLabels[pointi]]; scalar xDim = Foam::max(pLocal & vector(1,0,0)) - Foam::min(pLocal & vector(1,0,0)); // And similar for yDim and zDim } Best regards, Niels |
|
September 14, 2010, 13:45 |
|
#11 | |
New Member
Armin Gh.
Join Date: Sep 2010
Location: Aachen,Germany
Posts: 29
Rep Power: 16 |
Quote:
Works like a charm, thanks a bunch . PS: Although for users who would use this code later,there is a minor dictation error. the correct one would be: const faceList & ff = mesh.faces(); const pointField & pp = mesh.points(); forAll ( mesh.C(), celli) { const cell & cc = mesh.cells()[celli]; labelList pLabels(cc.labels(ff)); pointField pLocal(pLabels.size(), vector::zero); forAll (pLabels, pointi) pLocal[pointi] = pp[pLabels[pointi]]; scalar xDim = Foam::max(pLocal & vector(1,0,0)) - Foam::min(pLocal & vector(1,0,0)); // And similar for yDim and zDim } |
||
January 21, 2016, 22:43 |
|
#12 |
New Member
Yen-Lung Chen
Join Date: Dec 2015
Posts: 1
Rep Power: 0 |
Thanks a lot.
|
|
August 3, 2016, 13:40 |
How to use the Codes
|
#13 |
New Member
yuanyuanzhang
Join Date: Aug 2016
Posts: 1
Rep Power: 0 |
Hi,
I am relativ new with OpenFoam and can not get, how to use the Codes. Can someone help me? best regards Yuanyuan Zhang |
|
December 19, 2016, 10:34 |
Where to put the code in?
|
#14 | |
New Member
HuangXin
Join Date: Dec 2016
Posts: 7
Rep Power: 10 |
Quote:
Hey, I have the same question ,and I want to know which file should I add your code into? Sorry I dont konw much about OpenFOAM. I used snappyMesh and chtMultiRegionSimpleFoam ,where should I put your code into? I want to get the cooridates of all the cells ,8 points for each cells, instead of only the cell centre points. Thank you! |
||
January 25, 2018, 22:21 |
|
#15 | |
Senior Member
Nguyen Duy Trong
Join Date: Apr 2014
Posts: 124
Rep Power: 12 |
Quote:
Have you check this method for computational domain constituted by multiblock mesh such as for the blockMesh dict of dambreaking case ? |
||
May 8, 2020, 00:04 |
|
#16 |
Senior Member
krishna kant
Join Date: Feb 2016
Location: Hyderabad, India
Posts: 133
Rep Power: 10 |
Can geometricDelta function be used to directly get the height, length and width?
|
|
April 18, 2021, 13:27 |
|
#17 |
Member
Daniel
Join Date: May 2018
Posts: 43
Rep Power: 8 |
Hello everybody,
I have a question out of curiosity. Does the code mentioned earlier by ngj provide for every cell in the domain (so at the end we have a volScalarField) the length in x, y and z direction respectively? I am asking because for my implementation of a new hybrid turbulence model I need the dimensions of each cell in the domain in x, y and z (deltax, deltay and deltaz). Many thanks for your help! |
|
June 2, 2023, 04:16 |
|
#18 |
New Member
Charitha Rangana Dissanayaka
Join Date: Mar 2022
Posts: 6
Rep Power: 4 |
ngj
Senior Member to where I should put this code. little bit strugling. if possible please let me know the path. |
|
June 2, 2023, 04:20 |
|
#19 |
New Member
Charitha Rangana Dissanayaka
Join Date: Mar 2022
Posts: 6
Rep Power: 4 |
To which file this code should enter.
Please explain the path. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Superlinear speedup in OpenFOAM 13 | msrinath80 | OpenFOAM Running, Solving & CFD | 18 | March 3, 2015 06:36 |
OF 1.6 | Ubuntu 9.10 (64bit) | GLIBCXX_3.4.11 not found | piprus | OpenFOAM Installation | 22 | February 25, 2010 14:43 |
fluent add additional zones for the mesh file | SSL | FLUENT | 2 | January 26, 2008 12:55 |
[Commercial meshers] Trimmed cell and embedded refinement mesh conversion issues | michele | OpenFOAM Meshing & Mesh Conversion | 2 | July 15, 2005 05:15 |
Warning 097- | AB | Siemens | 6 | November 15, 2004 05:41 |