/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object sampleDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // /* Sample field data with a choice of interpolation schemes, sampling options and write formats. After running the sample application the user will find a new folder in the case directory named sets. One can use "foamCalc" to calculate the components of a tensor/vector and then you can you sample to sample these components. For example: If I have the stress tensor sigma, then I type: foamCalc components sigma This will create the volScalarFields sigmaxx,sigmayy,sigmazz,sigmaxy,sigmaxz and sigmayz. Then use 'sample' utility on these fields. */ // Set output format : choice are xmgr, jplot, gnuplot, raw, vtk, ensight, csv. // Each data file is given a name containing the field name, the sample set name, // and an extension relating to the output format, including .xy for raw data, // .agr for Grace/xmgr and .dat for jPlot. setFormat raw; // Surface output format. Choice of // null : suppress output // ensight : Ensight Gold format, one field per case file // foamFile : separate points, faces and values file // dx : DX scalar or vector format // vtk : VTK ascii format // raw : x y z value format for use with e.g. gnuplot 'splot'. // // Note: // other formats such as obj, stl, etc can also be written (by proxy) // but without any values! surfaceFormat vtk; // optionally define extra controls for the output formats formatOptions { ensight { format ascii; } } // interpolationScheme. choice of // cell : use cell-centre value only; constant over cells // (default) // cellPoint : use cell-centre and vertex values // cellPointFace : use cell-centre, vertex and face values. // pointMVC : use point values only (Mean Value Coordinates) // cellPatchConstrained : like 'cell' but uses cell-centre except on // boundary faces where it uses the boundary value. // For use with e.g. patchCloudSet. // 1] vertex values determined from neighbouring cell-centre values // 2] face values determined using the current face interpolation scheme // for the field (linear, gamma, etc.) interpolationScheme cellPoint; // Fields to sample. fields ( UMean ); // Set sampling definition: choice of // uniform evenly distributed points on line // face one point per face intersection // midPoint one point per cell, inbetween two face intersections // midPointAndFace combination of face and midPoint // // polyLine specified points, not nessecary on line, uses // tracking // cloud specified points, uses findCell // triSurfaceMeshPointSet points of triSurface // // axis: how to write point coordinate. Choice of // - x/y/z: x/y/z coordinate only // - xyz: three columns (probably does not make sense for anything but raw) // - distance: distance from start of sampling line (if uses line) or // distance from first specified sampling point // // type specific: // uniform, face, midPoint, midPointAndFace : start and end coordinate // uniform: extra number of sampling points // polyLine, cloud: list of coordinates // patchCloud: list of coordinates and set of patches to look for nearest // patchSeed: random sampling on set of patches. Points slightly off // face centre. type sets; libs ("libsampling.so"); // sets subdictionary defines where the fields should be sampled. // uniform: evenly distributed points on line. // face: one point per face intersection. // midPoint: one point per cell, in between two face intersections. // midPointAndFace: combination of face and midPoint. // curve: specified points, not necessary on line, uses tracking. // cloud: specified points, uses findCell sets ( BFS_xH_2 { type midPointAndFace; //combination of face and midPoint axis distance; start (0.0534 0.0000 0.0000); end (0.0534 0.0667 0.0000); } BFS_xH_5 { type midPointAndFace; axis distance; start (0.1335 0.0000 0.0000); end (0.1335 0.0667 0.0000); } line { // name of the set type uniform; // type of the set axis x; start (0 0 0); //start coordinate end (0.29 0 0); //end coordinate nPoints 1000; //nPoints number of sampling points for uniform //list of coordinates for curve and cloud } ); // Surface sampling definition // // 1] patches are not triangulated by default // 2] planes are always triangulated // 3] iso-surfaces are always triangulated surfaces ( /* constantPlane { type plane; // always triangulated basePoint (0.0501 0.0501 0.005); normalVector (0.1 0.1 1); //- Optional: restrict to a particular zone // zone zone1; //- Optional: do not triangulate (only for surfaceFormats that support // polygons) //triangulate false; } interpolatedPlane { type plane; // always triangulated // make plane relative to the coordinateSystem (Cartesian) coordinateSystem { origin (0.05 0.05 0.005); } basePoint (0 0 0); normalVector (0.1 0.1 1); interpolate true; } walls_constant { type patch; patches ( ".*Wall.*" ); // Optional: whether to leave as faces (=default) or triangulate // triangulate false; } walls_interpolated { type patch; patches ( ".*Wall.*" ); interpolate true; // Optional: whether to leave as faces (=default) or triangulate // triangulate false; } nearWalls_interpolated { // Sample cell values off patch. Does not need to be the near-wall // cell, can be arbitrarily far away. type patchInternalField; patches ( ".*Wall.*" ); interpolate true; // Optional: specify how to obtain sampling points from the patch // face centres (default is 'normal') // // //- Specify distance to offset in normal direction offsetMode normal; distance 0.1; // // //- Specify single uniform offset // offsetMode uniform; // offset (0 0 0.0001); // // //- Specify offset per patch face // offsetMode nonuniform; // offsets ((0 0 0.0001) (0 0 0.0002)); // Optional: whether to leave as faces (=default) or triangulate // triangulate false; } interpolatedIso { // Iso surface for interpolated values only type isoSurface; // always triangulated isoField rho; isoValue 0.5; interpolate true; //zone ABC; // Optional: zone only //exposedPatchName fixedWalls; // Optional: zone only // regularise false; // Optional: do not simplify // mergeTol 1e-10; // Optional: fraction of mesh bounding box // to merge points (default=1e-6) } constantIso { // Iso surface for constant values. // Triangles guaranteed not to cross cells. type isoSurfaceCell; // always triangulated isoField rho; isoValue 0.5; interpolate false; regularise false; // do not simplify // mergeTol 1e-10; // Optional: fraction of mesh bounding box // to merge points (default=1e-6) } triangleCut { // Cutingplane using iso surface type cuttingPlane; planeType pointAndNormal; pointAndNormalDict { basePoint (0.4 0 0.4); normalVector (1 0.2 0.2); } interpolate true; //zone ABC; // Optional: zone only //exposedPatchName fixedWalls; // Optional: zone only // regularise false; // Optional: do not simplify // mergeTol 1e-10; // Optional: fraction of mesh bounding box // to merge points (default=1e-6) } distance { // Isosurface from signed/unsigned distance to surface type distanceSurface; signed true; // Definition of surface surfaceType triSurfaceMesh; surfaceName integrationPlane.stl; // Distance to surface distance 0.0; //cell false;// optional: use isoSurface instead // of isoSurfaceCell interpolate false; regularise false; // Optional: do not simplify // mergeTol 1e-10; // Optional: fraction of mesh bounding box // to merge points (default=1e-6) } triSurfaceSampling { // Sampling on triSurface type sampledTriSurfaceMesh; surface integrationPlane.stl; source boundaryFaces; // What to sample: cells (nearest cell) // insideCells (only triangles inside cell) // boundaryFaces (nearest boundary face) interpolate true; } */ ); // *********************************************************************** //