|
[Sponsors] | |||||
|
|
|
#1 |
|
Member
P.A.
Join Date: Mar 2009
Location: Germany
Posts: 33
Rep Power: 6 ![]() |
Hello Foamers,
I want to use the "sample" tool as a base for an own little application, where I need to access and manipulate the coordinates of the sampling points in a point cloud. After reading through the code of sample, sampledSet.H/C, sampledSets.H/C, IOOutputFilter.H/C, PtrList.H/C, etc. for days, I am feeling a bit lost in the complexity of this task. I think that the essential "magic" takes place by the definition of the "IOsampledSets sSets" variable, whereby the sampleDict is read and the sampling points are assigned to some sort of array (a PtrList array?). I cannot figure out how this is done exactly and how I can get access to this array. I put the main function of "sample" here to make understanding my question easier; it is without surface sampling stuff, as I don't need it: ------------------------ snippet of the original sample code ---------------------- int main(int argc, char *argv[]) { timeSelector::addOptions(); # include "addRegionOption.H" # include "setRootCase.H" # include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); # include "createNamedMesh.H" IOsampledSets sSets ( sampledSets::typeName, mesh, "sampleDict", IOobject::MUST_READ, true ); forAll(timeDirs, timeI) { runTime.setTime(timeDirs[timeI], timeI); Info<< "Time = " << runTime.timeName() << endl; // Handle geometry/topology changes polyMesh::readUpdateState state = mesh.readUpdate(); sSets.readUpdate(state); sSets.write(); } Info<< "End\n" << endl; return 0; } ------------------------------------ snippet end ------------------------ I want to calculate the locations of the sampling points between the definition of "sSets" and the "forAll" loop and to write the calculated positions into the right place in the sampledSets' data structure where the "forAll" loop can do its work on it. Can anyone point me in the right direction on how to do that? I am fairly new to C++ and OpenFOAM coding, so I will need somehow detailed code examples from where I can go further. Thank you! Cheers, Pascal. |
|
|
|
|
|
|
|
|
#2 |
|
Member
|
Hi,
Don't really know what exactly you wanted to sample. Do you want to sample data at a point or an iso-surface? Depending on what you want, you have to use specific function. For instance, sampling data at a point can be done with probe or extracting iso-surface can be done with sample. After knowing what you want to do, you can made your own sample function. Take a look at $FOAM_SRC/sampling, you will find the code of the function you want to use. Then you can modify these to get what you want. Duong |
|
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| No layers in a small gap | bobburnquist | OpenFOAM Native Meshers: snappyHexMesh and Others | 2 | November 25, 2012 08:54 |
| .STL: non-closed manifold surface | giulio.topazio | OpenFOAM Native Meshers: snappyHexMesh and Others | 19 | August 4, 2012 07:34 |
| [DesignModeler] DM's JScript: FPoint()'s GetPoint(i) function picks points backwards? | ANT | ANSYS Meshing & Geometry | 2 | July 23, 2012 15:25 |
| sampling interval and sampling frequency | beauty | FLUENT | 0 | April 8, 2011 05:07 |
| BlockMeshmergePatchPairs | hjasak | OpenFOAM Native Meshers: blockMesh | 11 | August 15, 2008 07:36 |