CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Post-Processing (http://www.cfd-online.com/Forums/openfoam-post-processing/)
-   -   sampling on cellSet (http://www.cfd-online.com/Forums/openfoam-post-processing/118165-sampling-cellset.html)

Tarak May 22, 2013 02:44

sampling on cellSet
 
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

Tushar@cfd May 22, 2013 03:47

Quote:

Originally Posted by Tarak (Post 429099)
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

I think the following link will solve your problem..

http://www.cfd-online.com/Forums/ope...ampledict.html

Tarak May 22, 2013 11:13

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)

Tushar@cfd May 23, 2013 00:33

Quote:

Originally Posted by Tarak (Post 429273)
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)

By the cellSet do you mean to say a line/surface inside the fluid domain?

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.

Tarak May 23, 2013 01:09

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).

Tushar@cfd May 23, 2013 01:40

Quote:

Originally Posted by Tarak (Post 429398)
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).


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.

francois July 9, 2013 16:18

Tarak, Did you find a solution to sample your data on a cellSet/faceSet ? Thanks :) Regards François

ashvinc9 July 9, 2013 17:44

sampling of cellSet
 
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
        }
    }
);

After creating the cellSet, one can run following command to produce a VTK file of that cellSet, e.g.,

Code:

foamToVTK -cellSet c0 -latestTime
Hope this helps !

- Ashvin

francois July 11, 2013 07:34

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

Tarak July 14, 2013 21:34

Hii Francois,

No, I couldn't find a solution. Please let me know if you have one.

roenby August 21, 2013 10:08

Simple sampling using cellSet
 
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>.


All times are GMT -4. The time now is 00:10.