361 lines
9.2 KiB
C++
361 lines
9.2 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: dev |
|
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
object topoSetDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
// List of actions. Each action is a dictionary with e.g.
|
|
// // name of set
|
|
// name c0;
|
|
//
|
|
// // type: pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet
|
|
// type cellSet;
|
|
//
|
|
// // action to perform on set. Two types:
|
|
// // - require no source : clear/invert
|
|
// // - require source : new/add/delete/subset
|
|
// action new;
|
|
//
|
|
// The source entry varies according to the type of set:
|
|
//
|
|
// cellSet
|
|
// ~~~~~~~
|
|
//
|
|
// // Select by explicitly providing cell labels
|
|
// source labelToCell;
|
|
// {
|
|
// value (12 13 56); // labels of cells
|
|
// }
|
|
//
|
|
// // Copy elements from cellSet
|
|
// source cellToCell;
|
|
// {
|
|
// set c1;
|
|
// }
|
|
//
|
|
// // Cells in cell zone
|
|
// source zoneToCell;
|
|
// {
|
|
// name ".*Zone"; // Name of cellZone, regular expressions allowed
|
|
// }
|
|
//
|
|
// // Cells on master or slave side of faceZone
|
|
// source faceZoneToCell;
|
|
// {
|
|
// name ".*Zone"; // Name of faceZone, regular expressions allowed
|
|
// option master; // master/slave
|
|
// }
|
|
//
|
|
// // Select based on 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
|
|
// }
|
|
//
|
|
// // Select based on pointSet
|
|
// source pointToCell;
|
|
// {
|
|
// set p0;
|
|
// option any; // cell with any point in pointSet
|
|
// //option all; // cell with all points in pointSet
|
|
// }
|
|
//
|
|
// // Select based on cellShape
|
|
// source shapeToCell;
|
|
// {
|
|
// type hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex
|
|
// }
|
|
//
|
|
// // Cells with cell centre within box
|
|
// source boxToCell;
|
|
// {
|
|
// box (0 0 0) (1 1 1);
|
|
// }
|
|
//
|
|
// // Cells with cell centre within box
|
|
// // Is skewed, rotated box. Given as origin and three spanning vectors.
|
|
// source rotatedBoxToCell;
|
|
// {
|
|
// origin (0.2 0.2 -10);
|
|
// i (0.2 0.2 0);
|
|
// j (-0.2 0.2 0);
|
|
// k (10 10 10);
|
|
// }
|
|
//
|
|
// // Cells with centre within cylinder
|
|
// source cylinderToCell;
|
|
// {
|
|
// p1 (0.2 0.2 -10); // start point on cylinder axis
|
|
// p2 (0.2 0.2 0); // end point on cylinder axis
|
|
// radius 5.0;
|
|
// }
|
|
//
|
|
// // Cells with centre within sphere
|
|
// source sphereToCell;
|
|
// {
|
|
// centre (0.2 0.2 -10);
|
|
// radius 5.0;
|
|
// }
|
|
//
|
|
// // Cells with cellCentre nearest to coordinates
|
|
// source nearestToCell;
|
|
// {
|
|
// points ((0 0 0) (1 1 1)(2 2 2));
|
|
// }
|
|
//
|
|
// // Select based on surface
|
|
// source surfaceToCell;
|
|
// {
|
|
// file "www.avl.com-geometry.stl";
|
|
// 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)
|
|
// }
|
|
//
|
|
// // values of field within certain range
|
|
// source fieldToCell;
|
|
// {
|
|
// fieldName U; // Note: uses mag(U) since volVectorField
|
|
// min 0.1;
|
|
// max 0.5;
|
|
// }
|
|
//
|
|
// // Mesh region (non-face connected part of (subset of)mesh)
|
|
// source regionToCell;
|
|
// {
|
|
// set c0; // name of cellSet giving mesh subset
|
|
// insidePoint (1 2 3); // point inside region to select
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// faceSet
|
|
// ~~~~~~~
|
|
//
|
|
// // Copy elements from faceSet
|
|
// source faceToFace;
|
|
// {
|
|
// set f1;
|
|
// }
|
|
//
|
|
// // Select based on cellSet
|
|
// source cellToFace;
|
|
// {
|
|
// set c0;
|
|
// option all; // All faces of cells
|
|
// //option both; // Only faces whose owner&neighbour are in cellSet
|
|
// }
|
|
//
|
|
// // Select based on pointSet
|
|
// source pointToFace;
|
|
// {
|
|
// set p0;
|
|
// option any; // Faces using any point in pointSet
|
|
// //option all // Faces with all points in pointSet
|
|
// }
|
|
//
|
|
// // Select by explicitly providing face labels
|
|
// source labelToFace;
|
|
// {
|
|
// value (12 13 56); // labels of faces
|
|
// }
|
|
//
|
|
// // All faces of patch
|
|
// source patchToFace;
|
|
// {
|
|
// name ".*Wall"; // Name of patch, regular expressions allowed
|
|
// }
|
|
//
|
|
// // All faces of faceZone
|
|
// source zoneToFace;
|
|
// {
|
|
// name ".*Zone1"; // Name of faceZone, regular expressions allowed
|
|
// }
|
|
//
|
|
// // Faces with face centre within box
|
|
// source boxToFace;
|
|
// {
|
|
// box (0 0 0) (1 1 1);
|
|
// }
|
|
//
|
|
// // Faces with normal to within certain angle aligned with vector.
|
|
// source normalToFace;
|
|
// {
|
|
// normal (0 0 1); // Vector
|
|
// cos 0.01; // Tolerance (max cos of angle)
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// pointSet
|
|
// ~~~~~~~
|
|
//
|
|
// // Copy elements from pointSet
|
|
// source pointToPoint;
|
|
// {
|
|
// set p1;
|
|
// }
|
|
//
|
|
// // Select based on cellSet
|
|
// source cellToPoint;
|
|
// {
|
|
// set c0;
|
|
// option all; // all points of cell
|
|
// }
|
|
//
|
|
// // Select based on faceSet
|
|
// source faceToPoint;
|
|
// {
|
|
// set f0; // name of faceSet
|
|
// option all; // all points of face
|
|
// }
|
|
//
|
|
// // Select by explicitly providing point labels
|
|
// source labelToPoint;
|
|
// {
|
|
// value (12 13 56); // labels of points
|
|
// }
|
|
//
|
|
// // All points in pointzone
|
|
// source zoneToPoint;
|
|
// {
|
|
// name ".*Zone"; // name of pointZone, regular expressions allowed
|
|
// }
|
|
//
|
|
// // Points nearest to coordinates
|
|
// source nearestToPoint;
|
|
// {
|
|
// points ((0 0 0) (1 1 1));
|
|
// }
|
|
//
|
|
// // Points with coordinate within box
|
|
// source boxToPoint;
|
|
// {
|
|
// box (0 0 0) (1 1 1);
|
|
// }
|
|
//
|
|
// // Select based on surface
|
|
// source surfaceToPoint;
|
|
// {
|
|
// file "www.avl.com-geometry.stl";
|
|
// nearDistance 0.1; // points near to surface
|
|
// includeInside false; // points on inside of surface
|
|
// // (requires closed surface with consistent
|
|
// // normals)
|
|
// includeOutside false; // ,, outside ,,
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// cellZoneSet
|
|
// ~~~~~~~~~~~
|
|
// (mirrors operations on a cellSet into a cellZone)
|
|
//
|
|
// // Select based on cellSet
|
|
// source setToCellZone;
|
|
// {
|
|
// set c0; // name of cellSet
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// faceZoneSet
|
|
// ~~~~~~~~~~~
|
|
// // Select based on faceSet without orientation
|
|
// source setToFaceZone;
|
|
// {
|
|
// set f0; // name of faceSet
|
|
// }
|
|
//
|
|
// // Select based on faceSet, using cellSet to determine orientation
|
|
// source setsToFaceZone;
|
|
// {
|
|
// faceSet f0; // name of faceSet
|
|
// cellSet c0; // name of cellSet of slave side
|
|
// }
|
|
|
|
actions
|
|
(
|
|
// Example:pick up internal faces on outside of cellSet
|
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
// Load initial cellSet
|
|
{
|
|
name c0;
|
|
type cellSet;
|
|
action new;
|
|
source labelToCell;
|
|
sourceInfo
|
|
{
|
|
value (12 13 56);
|
|
}
|
|
}
|
|
|
|
// Get all faces in cellSet
|
|
{
|
|
name f0;
|
|
type faceSet;
|
|
action new;
|
|
source cellToFace;
|
|
sourceInfo
|
|
{
|
|
set c0;
|
|
option all;
|
|
}
|
|
}
|
|
|
|
// Determine inverse cellSet
|
|
{
|
|
name c1;
|
|
type cellSet;
|
|
action new;
|
|
source cellToCell;
|
|
sourceInfo
|
|
{
|
|
set c0;
|
|
}
|
|
}
|
|
{
|
|
name c1;
|
|
type cellSet;
|
|
action invert;
|
|
}
|
|
|
|
// Keep in f0 all faces in c1
|
|
{
|
|
name f0;
|
|
type faceSet;
|
|
action subset;
|
|
source cellToFace;
|
|
sourceInfo
|
|
{
|
|
set c1;
|
|
option all;
|
|
}
|
|
}
|
|
);
|
|
|
|
// ************************************************************************* //
|