Files
OpenFOAM-12/etc/caseDicts/annotated/topoSetDict
2024-07-06 16:02:47 +01:00

331 lines
9.4 KiB
C++

/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 12
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
// Example:pick up internal faces on outside of cellSet
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Load initial cellSet
{
action new;
type cellSet;
name c0;
source labelToCell;
value (12 13 56);
}
// Get all faces in cellSet
{
action new;
type faceSet;
name f0;
source cellToFace;
set c0;
option all;
}
// Determine inverse cellSet
{
action new;
type cellSet;
name c1;
source cellToCell;
set c0;
}
{
name c1;
type cellSet;
action invert;
}
// Keep in f0 all faces in c1
{
name f0;
type faceSet;
action subset;
source cellToFace;
set c1;
option all;
}
// Example: create cellZone from geometric region
{
action new;
type cellZoneSet;
name c0;
source boxToCell;
box (0.04 0 0)(0.06 100 100);
}
);
/*
// List of actions. Each action is a dictionary with e.g.
// action to perform on set.
action new;
// - require no source : clear/invert/remove
// clear : clears set or zone
// invert : select all currently non-selected elements
// remove : removes set or zone
// - require source : new/add/delete/subset
// new : create new set or zone from source
// add : add source to contents
// delete : deletes source from contents
// subset : keeps elements both in contents and source
// name of set
name c0;
// type: pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet
type cellSet;
// source: method to generate the set
// cellSet from cell labels
source labelToCell;
value (12 13 56); // labels of cells
// copy of a cellSet
source cellToCell;
set c1;
// cellSet from cell zone
source zoneToCell;
zone ".*Zone"; // Name of cellZone, regular expressions allowed
// cellSet from cells on master or slave side of faceZone
source faceZoneToCell;
zone ".*Zone"; // Name of faceZone, regular expressions allowed
option master; // master/slave
// cellSet from faceSet
source faceToCell;
set f0; // Name of faceSet
// option neighbour; // cell with neighbour in faceSet
// option owner; // ,, owner
option any; // cell with any face in faceSet
// option all; // cell with all faces in faceSet
// cellSet from pointSet
source pointToCell;
set p0;
option any; // cell with any point in pointSet
// option edge; // cell with an edge with both points in pointSet
// cellSet based on shape of cells
source shapeToCell;
type hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex
// cellSet inside a rectangular bounding box or boxes
source boxToCell;
box (0 0 0) (1 1 1);
// boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11));
// cellSet inside rotated box
source rotatedBoxToCell;
origin (0.2 0.2 -10);
i (0.2 0.2 0);
j (-0.2 0.2 0);
k (10 10 10);
// cellSet within a cylinder
source cylinderToCell;
point1 (0.2 0.2 -10); // start point on cylinder axis
point2 (0.2 0.2 0); // end point on cylinder axis
radius 5.0;
// cellSet within a sphere
source sphereToCell;
centre (0.2 0.2 -10);
radius 5.0;
// cellSet nearest to point locations
source nearestToCell;
points ((0 0 0) (1 1 1)(2 2 2));
// Select based on surface
source surfaceToCell;
file "surface.stl";
useSurfaceOrientation false; // use closed surface inside/outside
// test (ignores includeCut,
// outsidePoints)
outsidePoints ((-99 -99 -59)); // definition of outside
includeCut false; // cells cut by surface
includeInside false; // cells not on outside of surf
includeOutside false; // cells on outside of surf
nearDistance -1; // cells with centre near surf
// (set to -1 if not used)
curvature 0.9; // cells within nearDistance
// and near surf curvature
// (set to -100 if not used)
// cellSet by field values within a range
source fieldToCell;
fieldName U; // Note: uses mag(U) since volVectorField
min 0.1;
max 0.5;
// cellSet based on a mesh region (non-face connected part of (subset of)mesh)
source regionToCell;
set c0; // optional name of cellSet giving mesh subset
insidePoints ((1 2 3)); // points inside region to select
nErode 0; // optional number of layers to erode
// selection
// cellSet based on a total volume beneath a plane with specified normal
source targetVolumeToCell;
volume 2e-05;
normal (0 1 0); // usually in direction of gravity
// copy of a faceSet
source faceToFace;
set f1;
// faceSet from a cellSet
source cellToFace;
set c0;
option all; // All faces of cells
// option both; // Only faces whose owner&neighbour are in cellSet
// faceSet from a pointSet
source pointToFace;
set p0;
option any; // Faces using any point in pointSet
// option all // Faces with all points in pointSet
// option edge // Faces with two consecutive points in pointSet
// faceSet specified by labels
source labelToFace;
value (12 13 56); // labels of faces
// faceSet from patches
source patchToFace;
patch ".*Wall"; // Name of patch or patch group,
// (regular expressions allowed)
// faceSet from the boundary
source boundaryToFace;
// faceSet from a faceZone
source zoneToFace;
zone ".*Zone1"; // Name of faceZone, regular expressions allowed
// faceSet inside a rectangular bounding box or boxes
source boxToFace;
box (0 0 0) (1 1 1);
// boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11));
// faceSet with normal orientation within a tolerance
source normalToFace;
normal (0 0 1); // Vector
cos 0.01; // Tolerance (max cos of angle)
// faceSet from existing faceSet, nearest to given position
source regionToFace;
set f0;
nearPoint (0.1 0.1 0.005);
// copy a pointSet
source pointToPoint;
set p1;
// pointSet from a cellSet
source cellToPoint;
set c0;
option all; // all points of cell
// pointSet from a faceSet
source faceToPoint;
set f0; // name of faceSet
option all; // all points of face
// pointSet specified by labels
source labelToPoint;
value (12 13 56); // labels of points
// pointSet from pointZone
source zoneToPoint;
zone ".*Zone"; // name of pointZone, regular expressions allowed
// pointSet nearest to positions
source nearestToPoint;
points ((0 0 0) (1 1 1));
// pointSet inside a rectangular bounding box or boxes
source boxToPoint;
box (0 0 0) (1 1 1);
// boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11));
// pointSet, based on surface
source surfaceToPoint;
file "surface.stl";
nearDistance 0.1; // points near to surface
includeInside false; // points on inside of surface
// (requires closed surface with consistent
// normals)
includeOutside false; // ,, outside ,,
// pointSet based on distance to a patch or patches
source patchDistanceToCell;
patch ".*Wall"; // Patch name
// patches (".*Wall" atmosphere); // List of patch names
distance 0.1; // Distance below which to
// include cells
// cellZoneSet reads cellZone and writes both cellZone and cellSet
// cellZone can be generated from existing cellSet by
source setToCellZone;
set c0; // name of cellSet
// faceZoneSet manipulates both cellZone and cellSet
// faceZone can be generated from existing faceSet by
source setToFaceZone;
faceSet f0; // name of faceSet
// faceZone from faceSet, using cellSet to determine orientation
source setsToFaceZone;
faceSet f0; // name of faceSet
cellSet c0; // name of cellSet of slave side
flip false; // optional: flip the faceZone (so now the cellSet
// is the master side)
//faceZone from surface with orientation from normals on surface
source searchableSurfaceToFaceZone;
surface searchableSphere;
centre (0.05 0.05 0.005);
radius 0.025;
// file "sphere.stl"; // Optional file name for triSurfaceMesh
// faceZone from a plane
source planeToFaceZone;
point (0 0 4);
normal (1 0 0.2);
include all; // Take all faces (default)
// include closest; // Take the closest contiguous region of
// faces to the plane point
// pointZoneSet manipulates both cellZone and cellSet
// pointZone can be generated from existing pointSet by
source setToPointZone;
set p0; // name of pointSet
*/
************************************************************************* //