|
[Sponsors] |
May 22, 2013, 03:44 |
sampling on cellSet
|
#1 |
Senior Member
Tarak
Join Date: Aug 2010
Location: State College, PA
Posts: 111
Rep Power: 16 |
Hii,
I need to use the "sample" utility to sample field values in a cellSet. Can someone please tell me the entries needed in sampleDict to do this? Thanks |
|
May 22, 2013, 04:47 |
|
#2 | |
Senior Member
|
Quote:
http://www.cfd-online.com/Forums/ope...ampledict.html |
||
May 22, 2013, 12:13 |
|
#3 |
Senior Member
Tarak
Join Date: Aug 2010
Location: State College, PA
Posts: 111
Rep Power: 16 |
Hii Tushar,
Thanks for your reply. If I understand correctly, the link talks about sampling on a patch, which I can do by writing something like surfaces ( airfoil { type patch; patches (airfoil);; // interpolate false; } ); inside sampleDict. But I need to sample data along a cellSet (not patch) |
|
May 23, 2013, 01:33 |
|
#4 | |
Senior Member
|
Quote:
If suppose you want to plot along a line follow the below shown procedure. Make your sampleDict like the one shown below: interpolationScheme cellPoint; setFormat raw; surfaceFormat raw; sets ( name { type uniform; axis y; start (0 0 0.0005); end (0 0.425 0.0005); nPoints 800; } ); fields (U p); In a similar fashion you can progress for the surface with some changes like surfaces instead of sets, type patch..etc. |
||
May 23, 2013, 02:09 |
|
#5 |
Senior Member
Tarak
Join Date: Aug 2010
Location: State College, PA
Posts: 111
Rep Power: 16 |
Hii Tushar,
Thanks for your reply. By cellSet I meant the list of cells which we can create based on multiple criteria (See section 5.1 of http://openfoamwiki.net/index.php/TopoSet). |
|
May 23, 2013, 02:40 |
|
#6 | |
Senior Member
|
Quote:
Hi Tarak, Thanks for explaining.. Try looking at the already available topoSetDict with the OF. $tutorial/incompressible/pimpleFoam/TjunctionFan/system/ . May be bad co-ordinates could be sometimes a problem with the effecting running of utility. |
||
July 9, 2013, 17:18 |
|
#7 |
Senior Member
Francois Beaubert
Join Date: Mar 2009
Location: Lille, France
Posts: 147
Rep Power: 17 |
Tarak, Did you find a solution to sample your data on a cellSet/faceSet ? Thanks Regards François
|
|
July 9, 2013, 18:44 |
sampling of cellSet
|
#8 |
New Member
Ashvin Chaudhari
Join Date: Aug 2011
Location: Finland
Posts: 23
Rep Power: 15 |
Hi,
One can first run the topoSetDict and try to make a cellSet. Below is the code to keep in topoSetDict in order to make box typed cellSet. Code:
actions ( { name c0; // name of the cellSet type cellSet; action new; source boxToCell; //box type of cellSet sourceInfo { box (1 0.5 0) (3 1.5 0.5); //size or dimensions of the Box, you may change this } } ); Code:
foamToVTK -cellSet c0 -latestTime - Ashvin |
|
July 11, 2013, 08:34 |
|
#9 |
Senior Member
Francois Beaubert
Join Date: Mar 2009
Location: Lille, France
Posts: 147
Rep Power: 17 |
Thanks Ashvin for your tip.
Indeed it's possible to obtain VTK file from cellSet with foamToVTK but i'm looking for something different: I'll like to obtain a raw file of the sampled cellSet which I can load into python. Is it possible to do it without writing a parser to convert the VTK file to raw data ? Have a nice day Regards Francois |
|
July 14, 2013, 22:34 |
|
#10 |
Senior Member
Tarak
Join Date: Aug 2010
Location: State College, PA
Posts: 111
Rep Power: 16 |
Hii Francois,
No, I couldn't find a solution. Please let me know if you have one. |
|
August 21, 2013, 11:08 |
Simple sampling using cellSet
|
#11 |
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 93
Rep Power: 21 |
Dear Tarak
Maybe I misunderstood something, but I think what you are trying to do is straight forward: The cellSet you create e.g. with topoSet will be in a file, say, <case>/constant/polyMesh/sets/c0. This contains a list of cell indices, e.g. for all cells having centres within a box defined in your topoSetDict. If the field that you want to sample is a volVectorField (such as the velocity field U) or volScalarField (such as the pressure field p) then the file <case>/<time>/<volFieldName> contains a list with N vectors or scalars, where N is the number of cells in your domain. The n'th value in the list is the field value at the n'th cell. So if your cellSet contains the values (0 4 10) your sampling is simply a matter of picking out elements 0, 4 and 10 in the files <case>/<time>/<volFieldName>. Of course for this to be usefull you also need the cell centres for these cells. This can be calculated with the utility writeCellCentres (type writeCellCentres -help in the terminal). Hope this helped. Johan Ps: If the field you want to sample is a surfaceScalarField or a surfaceVectorField the values in the time directories are the field values on the cell faces. Then I suppose you can do exactly the same using a faceSet. The n'th value in your <case>/<time>/<surfaceField> corresponds to the n'th face in your <case>/constant/polyMesh/faces file (the numbers in this faces file refers to the elements in the constant/polyMesh/points file). Unfortunetaly, I don't think there is any writeFaceCentres utility currently so you would have to calculate the face centres yourself. For this you can extract the points for the faces in your faceSet using writeMeshObject -faceSet <faceSetFileName>. |
|
June 15, 2017, 19:04 |
Solved: sampling on cellSet
|
#12 | |
Member
Yousef
Join Date: Feb 2015
Posts: 40
Rep Power: 11 |
Quote:
OpenFOAM-4.x/src/functionObjects/field/fieldValues/volRegion/volRegion.H and find the sample controlDict at: OpenFOAM-4.x/src/functionObjects/field/fieldValues/controlDict This is very good feature for those who would like to have a time series of sampled data at a particular volume (defined by a cellZone) of the grid in cases where it is not feasible (e.g. huge grid sizes) to store timeseries of the whole grid. This time series later can be used for DMD analysis for example. With a small modification, you can change the time interval that you want the data to be sampled (which can be different than the main time interval), For example you can write: Code:
cellObj1 { type volRegion; libs ("libfieldFunctionObjects.so"); enabled true; writeControl adjustableRunTime; writeInterval 0.01; log true; writeFields true; regionType cellZone; name d0z; operation none; fields ( p U ); } As mentioned in the header file, the following operations also can be performed on the volume: none | no operation sum | sum sumMag | sum of component magnitudes average | ensemble average weightedAverage | weighted average volAverage | volume weighted average weightedVolAverage | weighted volume average volIntegrate | volume integral min | minimum max | maximum CoV | coefficient of variation: standard deviation/mean Regards, Yousef |
||
October 24, 2017, 08:19 |
|
#13 |
New Member
sebastien vilfayeau
Join Date: Feb 2012
Posts: 14
Rep Power: 14 |
Hi,
Have you tried it? volRegion is class not a function object. This will not work. Cheers, Sebastien |
|
January 12, 2018, 04:58 |
|
#14 |
Senior Member
Join Date: Nov 2009
Posts: 111
Rep Power: 17 |
I am trying to perform the same thing i.e. get the scalar field value for all cells belonging to a set.
Until now, what I am trying to do (combination of topoSet + sampleDict) does not work. If someone has found a solution to this issue, I am interested |
|
February 27, 2018, 12:21 |
|
#15 | |
Member
Yousef
Join Date: Feb 2015
Posts: 40
Rep Power: 11 |
Quote:
Sorry for the late reply. I just saw the new posts. Regards |
||
January 16, 2019, 11:36 |
|
#16 |
New Member
Jin Zhang
Join Date: May 2018
Location: Germany
Posts: 15
Rep Power: 8 |
Hi Yousef,
I'm now trying to do the similar work because I need to get a sampled specified volume field for my LES simulation. Although 'volRegion' can be used for the cellZone, I can only get the volume-averaged value for this cellZone rather than the values for each cell in this cellZone. The attached file that you give also shows the same problem. So do you know any other utilities to get the values for each cell in the specified volume? Best regards, Jin |
|
February 13, 2020, 16:51 |
|
#17 | |
New Member
Shawn
Join Date: Dec 2019
Posts: 5
Rep Power: 7 |
Quote:
I am now running across the same problem as you. Have you solved this problem? I know that 'volRegion' can be used for cellZone, but I can only get the volume-averaged value rather than the values for each cell in cellZone. Kind regards, Shawn |
||
May 27, 2020, 17:49 |
|
#18 |
New Member
Matthieu ZUBIALDE
Join Date: Mar 2019
Posts: 2
Rep Power: 0 |
Hello,
I have finally found one solution to the above problem. I am working on OpenFOAM 5. 1. Create a "topoSetDict" file into /system that contain: Code:
actions ( // cellZone { name user_cellZone; type cellSet; action new; source boxToCell; sourceInfo { box (x_min y_min z_min)(x_max y_max z_max); } } ); Code:
$ toposet Code:
$ setsToZones 4. Add into "/system/controlDict" Code:
functions { volFieldValue1 { type volFieldValue; libs ("libfieldFunctionObjects.so"); log true; writeControl writeTime; writeFields true; regionType cellZone; name user_cellZone; operation volAverage; fields ( U ); } } - the file volFieldValue.dat into /postProcessiong/volFieldValue1 containing the result of the cellZone volume average. - into your latestTime folder, the file "U_cellZone-user_cellZone" containing the values of U for all the cells included into the cellZone. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
sampling interval and sampling frequency | beauty | FLUENT | 13 | November 9, 2022 09:23 |
topoSet geometry than more than 1 box | Grimoli | OpenFOAM Pre-Processing | 1 | April 14, 2013 09:54 |
Creating a cellSet fom yPlus | buffi | OpenFOAM Post-Processing | 0 | December 17, 2012 05:19 |
[mesh manipulation] cellSet - how to define a hollow cylinder | RugbyGandalf | OpenFOAM Meshing & Mesh Conversion | 2 | December 17, 2012 03:34 |
sampling Data during calculation | JimKnopf | OpenFOAM Post-Processing | 0 | May 27, 2011 05:10 |