Skip to content
Snippets Groups Projects
sampleDict 9.95 KiB
Newer Older
henry's avatar
henry committed
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
henry's avatar
henry committed
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      sampleDict;
henry's avatar
henry committed
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// Set output format : choice of
//      xmgr
//      jplot
//      gnuplot
//      raw
//      vtk
henry's avatar
henry committed
setFormat raw;

// Surface output format. Choice of
//      null        : suppress output
//      ensight     : Ensight Gold format, one field per case file
henry's avatar
henry committed
//      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!
henry's avatar
henry committed
surfaceFormat vtk;

// optionally define extra controls for the output formats
formatOptions
{
    ensight
    {
        format  ascii;
    }
}

henry's avatar
henry committed
// 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.
henry's avatar
henry committed
// 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.)
mattijs's avatar
mattijs committed
interpolationScheme cellPoint;
henry's avatar
henry committed

// Fields to sample.
fields
(
    p
    U
);

// 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
henry's avatar
henry committed
//                          tracking
//      cloud               specified points, uses findCell
//      triSurfaceMeshPointSet  points of triSurface
henry's avatar
henry committed
//
// 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.
henry's avatar
henry committed
sets
(
    lineX1
    {
        type        uniform;
        axis        distance;

mattijs's avatar
mattijs committed
        //- cavity. Slightly perturbed so not to align with face or edge.
        start       (0.0201 0.05101 0.00501);
        end         (0.0601 0.05101 0.00501);
henry's avatar
henry committed
        nPoints     10;
    }

    lineX2
    {
        type        face;
        axis        x;

        //- cavity
        start       (0.0001 0.0525 0.00501);
        end         (0.0999 0.0525 0.00501);
henry's avatar
henry committed
    }
mattijs's avatar
mattijs committed

    somePoints
    {
        type    cloud;
        axis    xyz;
mattijs's avatar
mattijs committed
        points  ((0.049 0.049 0.00501)(0.051 0.049 0.00501));
mattijs's avatar
mattijs committed
    }

        // Sample nearest points on selected patches. Looks only up to
        // maxDistance away. Any sampling point not found will get value
        // pTraits<Type>::max (usually VGREAT)
        // Use with interpolations:
        // - cell (cell value)
        // - cellPatchConstrained (boundary value)
        // - cellPoint (interpolated boundary value)
        type        patchCloud;
        axis        xyz;
        points      ((0.049 0.099 0.005)(0.051 0.054 0.005));
        maxDistance 0.1;    // maximum distance to search
        patches     (".*Wall.*");
mattijs's avatar
mattijs committed
        type        patchSeed;
        patches     (".*Wall.*");
        // Number of points to seed. Divided amongst all processors according
        // to fraction of patches they hold.
        maxPoints   100;
    }

henry's avatar
henry committed
);

mattijs's avatar
mattijs committed
// Surface sampling definition
// 1] patches are not triangulated by default
// 2] planes are always triangulated
// 3] iso-surfaces are always triangulated
henry's avatar
henry committed
surfaces
(
    constantPlane
    {
        type            plane;    // always triangulated
henry's avatar
henry committed
        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;
henry's avatar
henry committed
    }

    interpolatedPlane
    {
        type            plane;    // always triangulated
henry's avatar
henry committed
        // make plane relative to the coordinateSystem (Cartesian)
        coordinateSystem
        {
            origin      (0.0501 0.0501 0.005);
        }
        basePoint       (0 0 0);
        normalVector    (0.1 0.1 1);
        interpolate     true;
    }

henry's avatar
henry committed
    {
        type            patch;
        patches         ( ".*Wall.*" );
        // Optional: whether to leave as faces (=default) or triangulate
        // triangulate     false;
henry's avatar
henry committed
    }

    walls_interpolated
henry's avatar
henry committed
    {
        type            patch;
        patches         ( ".*Wall.*" );
henry's avatar
henry committed
        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.*" );


        // 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;
henry's avatar
henry committed
    }

mattijs's avatar
mattijs committed
    interpolatedIso
henry's avatar
henry committed
    {
mattijs's avatar
mattijs committed
        // Iso surface for interpolated values only
        type            isoSurface;    // always triangulated
mattijs's avatar
mattijs committed
        isoField        rho;
        isoValue        0.5;
mattijs's avatar
mattijs committed
        interpolate     true;
mattijs's avatar
mattijs committed

        //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)
henry's avatar
henry committed
    }
mattijs's avatar
mattijs committed
    constantIso
henry's avatar
henry committed
    {
        // Iso surface for constant values.
        // Triangles guaranteed not to cross cells.
        type            isoSurfaceCell;    // always triangulated
mattijs's avatar
mattijs committed
        isoField        rho;
        isoValue        0.5;
mattijs's avatar
mattijs committed
        interpolate     false;
mattijs's avatar
mattijs committed
        regularise      false;              // do not simplify
        // mergeTol        1e-10;    // Optional: fraction of mesh bounding box
                                     // to merge points (default=1e-6)
henry's avatar
henry committed
    }
mattijs's avatar
mattijs committed

    triangleCut
    {
mattijs's avatar
mattijs committed
        // Cutingplane using iso surface
mattijs's avatar
mattijs committed
        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)
mattijs's avatar
mattijs committed
    }

mattijs's avatar
mattijs committed
    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;

mattijs's avatar
mattijs committed
        //cell            false;// optional: use isoSurface instead
                                // of isoSurfaceCell
mattijs's avatar
mattijs committed
        interpolate     false;
mattijs's avatar
mattijs committed
        regularise      false;  // Optional: do not simplify
        // mergeTol 1e-10;      // Optional: fraction of mesh bounding box
                                // to merge points (default=1e-6)
mattijs's avatar
mattijs committed
    }

    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)
mattijs's avatar
mattijs committed
        interpolate true;
    }
henry's avatar
henry committed
);

henry's avatar
henry committed
// *********************************************************************** //