diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSetDict b/applications/utilities/mesh/manipulation/topoSet/topoSetDict index f5af469be01a9a4a64929b496b74aa69bbdc8706..64ec0dd7c6fb744895f6ec5324f6cbf65e555cd2 100644 --- a/applications/utilities/mesh/manipulation/topoSet/topoSetDict +++ b/applications/utilities/mesh/manipulation/topoSet/topoSetDict @@ -14,8 +14,11 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// List of actions. Each action is a dictionary with e.g. -// // name of set +// The topoSetDict comprises a list of actions to perform on different +// set types (cellSet, faceSet, pointSet, etc). +// +// Each action is a dictionary with e.g. +// // Name of set // name c0; // // // type: pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet @@ -26,401 +29,23 @@ FoamFile // // clear : clears set or zone // // invert : select all currently non-selected elements // // remove : removes set or zone -// // - require source : new/add/delete/subset +// // - require source : new/add/subtract/subset // // new : create new set or zone from source // // add : add source to contents -// // delete : deletes source from contents +// // subtract : subtract source from contents // // subset : keeps elements both in contents and source // action new; // -// The source entry varies according to the type of set: -// -// cellSet -// ~~~~~~~ -// -// // Select by explicitly providing cell labels -// source labelToCell; -// sourceInfo -// { -// value (12 13 56); // labels of cells -// } -// -// // Copy elements from cellSet -// source cellToCell; -// sourceInfo -// { -// set c1; -// } -// -// // Cells in cell zone -// source zoneToCell; -// sourceInfo -// { -// name ".*Zone"; // Name of cellZone, regular expressions allowed -// } -// -// // Cells on master or slave side of faceZone -// source faceZoneToCell; -// sourceInfo -// { -// zones (".*Zone"); // Name of faceZone, regular expressions allowed -// // OR zone ".*Zone"; // Name of faceZone, regular expressions allowed -// // OR name ".*Zone"; // Name of faceZone, regular expressions allowed -// option master; // master/slave -// } -// -// // Select based on faceSet -// source faceToCell; -// sourceInfo -// { -// 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 -// } -// -// // All cells on boundaries -// source boundaryToCell; -// -// // Select cells associated with patch -// source patchToCell; -// patches ("patch.*") -// patch somePatch; -// -// // Select based on pointSet -// source pointToCell; -// sourceInfo -// { -// set p0; -// option any; // cell with any point in pointSet -// //option edge; // cell with an edge with both points in pointSet -// } -// -// // Select based on cellShape -// source shapeToCell; -// sourceInfo -// { -// type hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex -// } -// -// // Cells with cell centre within box ('box') or multiple boxes ('boxes') -// source boxToCell; -// sourceInfo -// { -// box (0 0 0) (1 1 1); -// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); -// } -// -// // Cells with cell centre within box -// // Is skewed, rotated box. Given as origin and three spanning vectors. -// source rotatedBoxToCell; -// sourceInfo -// { -// 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; -// sourceInfo -// { -// 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; -// sourceInfo -// { -// origin (0.2 0.2 -10); -// radius 5.0; -// } -// -// // Cells with cellCentre nearest to coordinates -// source nearestToCell; -// sourceInfo -// { -// points ((0 0 0) (1 1 1)(2 2 2)); -// } -// -// // Select based on surface -// source surfaceToCell; -// sourceInfo -// { -// file "geometry.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) -// } -// -// // values of field within certain range -// source fieldToCell; -// sourceInfo -// { -// field 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; -// sourceInfo -// { -// 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 -// } -// -// // Cells underneath plane such that volume is reached. E.g. for use -// // in setFields to set the level given a wanted volume. -// source targetVolumeToCell; -// sourceInfo -// { -// volume 2e-05; -// normal (0 1 0); // usually in direction of gravity -// } -// -// -// -// faceSet -// ~~~~~~~ -// -// // Copy elements from faceSet -// source faceToFace; -// sourceInfo -// { -// set f1; -// } -// -// // Select based on cellSet -// source cellToFace; -// sourceInfo -// { -// set c0; -// option all; // All faces of cells -// //option both; // Only faces whose owner&neighbour are in cellSet -// } -// -// // Select based on pointSet -// source pointToFace; -// sourceInfo -// { -// 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 -// } -// -// // Select by explicitly providing face labels -// source labelToFace; -// sourceInfo -// { -// value (12 13 56); // labels of faces -// } -// -// // All faces of patch -// source patchToFace; -// sourceInfo -// { -// name ".*Wall"; // Name of patch or patch group, -// // (regular expressions allowed) -// } -// -// // All boundary faces -// source boundaryToFace; -// -// // All faces of faceZone -// source zoneToFace; -// sourceInfo -// { -// name ".*Zone1"; // Name of faceZone, regular expressions allowed -// } +// The source entry varies according to the type of set. // -// // Faces with face centre within box ('box') or multiple boxes ('boxes') -// source boxToFace; -// sourceInfo -// { -// box (0 0 0) (1 1 1); -// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); -// } +// In OpenFOAM 1806 and earlier, it was compulsory to use a 'sourceInfo' +// sub-dictionary to define the sources. +// In OpenFOAM 1812 and later, this sub-directory is optional, unless +// there would be a name class (Eg, 'name' appearing at both levels). +// In most cases, the source definitions have been adjusted to avoid such +// clashes. // -// // Faces with normal to within certain angle aligned with vector. -// source normalToFace; -// sourceInfo -// { -// normal (0 0 1); // Vector -// cos 0.01; // Tolerance (max cos of angle) -// } -// -// // Walk on faces in faceSet, starting from face nearest given position -// source regionToFace; -// sourceInfo -// { -// set f0; -// nearPoint (0.1 0.1 0.005); -// } -// -// -// -// pointSet -// ~~~~~~~ -// -// // Copy elements from pointSet -// source pointToPoint; -// sourceInfo -// { -// set p1; -// } -// -// // Select based on cellSet -// source cellToPoint; -// sourceInfo -// { -// set c0; -// option all; // all points of cell -// } -// -// // Select based on faceSet -// source faceToPoint; -// sourceInfo -// { -// set f0; // name of faceSet -// option all; // all points of face -// } -// -// // Select by explicitly providing point labels -// source labelToPoint; -// sourceInfo -// { -// value (12 13 56); // labels of points -// } -// -// // All points in pointzone -// source zoneToPoint; -// sourceInfo -// { -// name ".*Zone"; // name of pointZone, regular expressions allowed -// } -// -// // Points nearest to coordinates -// source nearestToPoint; -// sourceInfo -// { -// points ((0 0 0) (1 1 1)); -// } -// -// // Points with coordinate within box ('box') or multiple boxes ('boxes') -// source boxToPoint; -// sourceInfo -// { -// box (0 0 0) (1 1 1); -// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); -// } -// -// // Select based on surface -// source surfaceToPoint; -// sourceInfo -// { -// 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 -// ~~~~~~~~~~~ -// Manipulates a cellZone (as well as a cellSet) -// Takes any cellSet source. The difference with a cellSet is -// - reads the cells from the cellZone, not the cellSet -// - write to the cellZone as well as the cellSet -// -// For backwards compatibility: -// // Select based on cellSet -// source setToCellZone; -// sourceInfo -// { -// set c0; // name of cellSet -// } -// -// -// -// faceZoneSet -// ~~~~~~~~~~~ -// Manipulates a faceZone (as well as a faceSet). It can only be used -// with two special sources: -// -// // Select based on faceSet without orientation -// source setToFaceZone; -// sourceInfo -// { -// faceSet f0; // name of faceSet -// } -// -// // Select based on faceSet, using cellSet to determine orientation -// source setsToFaceZone; -// sourceInfo -// { -// 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) -// } -// -// // Select based on faceSet, using supplied normal to determine orientation -// source setAndNormalToFaceZone; -// sourceInfo -// { -// faceSet f0; // name of faceSet -// normal (1 0 0); // normal orientation -// } -// -// // Select based on surface. Orientation from normals on surface -// source searchableSurfaceToFaceZone; -// sourceInfo -// { -// surface searchableSphere; -// origin (0.05 0.05 0.005); -// radius 0.025; -// //name sphere.stl; // Optional name if surface triSurfaceMesh -// } -// -// -// -// pointZoneSet -// ~~~~~~~~~~~~ -// Manipulates a pointZone (as well as a pointSet) -// Takes any pointSet source. The difference with a pointSet is -// - reads the cells from the pointZone, not the pointSet -// - write to the pointZone as well as the pointSet -// -// For backwards compatibility: -// // Select based on pointSet -// source setToPointZone; -// sourceInfo -// { -// set p0; // name of pointSet -// } - +// More detailed listing in the annotated topoSetSourcesDict actions ( @@ -433,10 +58,7 @@ actions type cellSet; action new; source labelToCell; - sourceInfo - { - value (12 13 56); - } + value (12 13 56); } // Get all faces in cellSet @@ -445,11 +67,8 @@ actions type faceSet; action new; source cellToFace; - sourceInfo - { - set c0; - option all; - } + set c0; + option all; } // Determine inverse cellSet @@ -458,10 +77,7 @@ actions type cellSet; action new; source cellToCell; - sourceInfo - { - set c0; - } + set c0; } { name c1; @@ -475,24 +91,17 @@ actions type faceSet; action subset; source cellToFace; - sourceInfo - { - set c1; - option all; - } + set c1; + option all; } - // Example: create cellZone from geometric region { name c0; type cellZoneSet; action new; source boxToCell; - sourceInfo - { - box (0.04 0 0)(0.06 100 100); - } + box (0.04 0 0)(0.06 100 100); } ); diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSetSourcesDict b/applications/utilities/mesh/manipulation/topoSet/topoSetSourcesDict new file mode 100644 index 0000000000000000000000000000000000000000..adf585e83a48dd10596e08042aff6c9641428862 --- /dev/null +++ b/applications/utilities/mesh/manipulation/topoSet/topoSetSourcesDict @@ -0,0 +1,607 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1806 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Information about topoSetSource types + +cellSet_doc +{ + //- Select all external (boundary) faces. + { + source boundaryToCell; + } + + + //- Cells with cell centre within multiple boxes or single box + { + source boxToCell; + + boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); + // or + box (0 0 0) (1 1 1); + // or + min (0 0 0); + max (1 1 1); + } + + + //- Copy elements from one or more other cellSets + { + source cellToCell; + sets (c1 c2); + // or + set c1; + } + + + //- Cells with centre within cylinder or cylinder annulus + { + 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; + // optional + innerRadius 1.0; + } + + + //- Cells with centre within cylinder annulus + // Can also simply use cylinderToCell + { + source cylinderAnnulusToCell; + p1 (0.2 0.2 -10); // start point on cylinder axis + p2 (0.2 0.2 0); // end point on cylinder axis + outerRadius 5.0; + innerRadius 1.0; + } + + + //- Select based on faceSet + { + source faceToCell; + sets (f0 f1); + // or + set f0; // Name of faceSet + + //- selection option (mandatory) + option any; // cell with any face in faceSet + // option all; // cell with all faces in faceSet + // option neighbour; // cell with neighbour in faceSet + // option owner; // cell with owner in faceSet + } + + + //- Cells on master or slave side of faceZone + { + source faceZoneToCell; + zones (".*Zone"); // Names of faceZones, word or regex + // OR zone ".*Zone"; // Name of faceZone, word or regex + option master; // master/slave + + //- Compat + // sourceInfo + // { + // name ".*Zone"; + // option master; + // } + } + + + //- values of field within certain range + { + source fieldToCell; + field U; // Note: uses mag(U) since volVectorField + min 0.1; + max 0.5; + } + + + //- Select by explicitly providing cell labels + { + source labelToCell; + value (12 13 56); // labels of cells + } + + + //- Select based on number of neighbouring cells + { + source nbrToCell; + neighbours 4; // min neighbours + } + + + //- Cells with cellCentre nearest to coordinates + { + source nearestToCell; + points ((0 0 0) (1 1 1)(2 2 2)); + } + + + //- Select cells associated with patch + { + source patchToCell; + patches ("patch.*"); + // or + patch somePatch; + } + + + //- Select based on pointSet + { + source pointToCell; + sets (p0 p1); + // or + sets p0; + + option any; // cell with any point in pointSet + //option edge; // cell with an edge with both points in pointSet + } + + + //- Mesh region (non-face connected part of (subset of)mesh) + { + source regionToCell; + insidePoints ((1 2 3)); // points inside region to select + set c0; // optional name of cellSet giving mesh subset + nErode 0; // optional number of layers to erode selection + } + + + //- 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); + } + + + //- Select cells with centres within a searchableSurface + { + source searchableSurfaceToCell; + surfaceType triSurfaceMesh; // The surface type + surfaceName blob.obj; // Name for the IOobject + // or + surface triSurfaceMesh; // Same as surface type + } + + + //- Select based on cellShape + { + source shapeToCell; + shape hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex + } + + + //- Cells with centre within sphere + { + source sphereToCell; + origin (0.2 0.2 -10); + radius 5.0; + // optional + innerRadius 1.0; + } + + + //- Select based on surface + { + source surfaceToCell; + + file "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) + // optional + useSurfaceOrientation false; // use closed surface inside/outside + // test (ignores includeCut, + // outsidePoints) + } + + + //- Cells underneath plane such that volume is reached. + // E.g. for use in setFields to set the level given a wanted volume. + { + source targetVolumeToCell; + volume 2e-05; + normal (0 1 0); // usually in direction of gravity + // optional + set c0; // restrict to named cellSet + } + + + //- Cells in cell zone + { + source zoneToCell; + zones (".*Zone"); // Names of cellZones, word or regex + // OR zone ".*Zone"; // Name of cellZone, word or regex + + //- Compat + // sourceInfo + // { + // name ".*Zone"; + // } + } +} + + +faceSet_doc +{ + //- All boundary faces + { + source boundaryToFace; + } + + + //- Faces with face centre within box ('box') or multiple boxes ('boxes') + { + source boxToFace; + + boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); + // or + box (0 0 0) (1 1 1); + // or + min (0 0 0); + max (1 1 1); + } + + + //- Select based on cellSet + { + source cellToFace; + source faceToCell; + sets (c0 c1); + // or + set c0; // Name of cellSet + + option all; // All faces of cells + //option both; // Only faces with owner+neighbour in cellSet + } + + + //- Faces with centre within cylinder or cylinder annulus + { + source cylinderToFace; + 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; + // optional + innerRadius 1.0; + } + + + //- Faces with centre within cylinder annulus + // Can also simply use cylinderToCell + { + source cylinderAnnulusToFace; + p1 (0.2 0.2 -10); // start point on cylinder axis + p2 (0.2 0.2 0); // end point on cylinder axis + outerRadius 5.0; + innerRadius 1.0; + } + + + //- Copy elements from faceSet + { + source faceToFace; + set f1; + } + + + //- Select by explicitly providing face labels + { + source labelToFace; + value (12 13 56); // labels of faces + } + + + //- 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) + } + + + //- All faces of patch + { + source patchToFace; + patches ("patch.*"); + // or + patch somePatch; + + // Compat + sourceInfo + { + name ".*Wall"; // Name of patch or patch group, + } + } + + + //- Select based on pointSet + { + source pointToFace; + sets (p0 p1); + // or + set p0; // Name of pointSet + + 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 + } + + + //- Walk on faces in faceSet, starting from face nearest given position + { + source regionToFace; + set f0; + nearPoint (0.1 0.1 0.005); + } + + + //- Select faces with centres within a searchableSurface + { + source searchableSurfaceToFace; + surfaceType triSurfaceMesh; // The surface type + surfaceName blob.obj; // Name for the IOobject + // or + surface triSurfaceMesh; // Same as surface type + } + + + //- Faces with centre within sphere + { + source sphereToFace; + origin (0.2 0.2 -10); + radius 5.0; + // optional + innerRadius 1.0; + } + + + //- All faces of faceZone + { + source zoneToFace; + + zones (".*Zone"); // Names of faceZones, word or regex + // OR zone ".*Zone"; // Name of faceZone, word or regex + + // Compat + // sourceInfo + // { + // name ".*Zone1"; + // } + } +} + + +pointSet_doc +{ + //- Points within multiple boxes or single box + { + source boxToPoint; + + boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); + // or + box (0 0 0) (1 1 1); + // or + min (0 0 0); + max (1 1 1); + } + + + //- Points associated with cellSet + { + source cellToPoint; + sets (c1 c2); + // or + set c1; + + option all; // all points of cell + } + + + //- Points within cylinder or cylinder annulus + { + source cylinderToPoint; + 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; + // optional + innerRadius 1.0; + } + + + //- Points associated with faceSet + { + source faceToPoint; + sets (f1 f2); + // or + set f1; + + option all; // all points of face + } + + + //- Select by explicitly providing point labels + { + source labelToPoint; + value (12 13 56); // labels of points + } + + + //- Points nearest to coordinates + { + source nearestToPoint; + points ((0 0 0) (1 1 1)); + } + + + //- Copy elements from pointSet + { + source pointToPoint; + sets (p1 p2); + // or + set p1; + } + + + //- Points within a searchableSurface + { + source searchableSurfaceToCell; + surfaceType triSurfaceMesh; // The surface type + surfaceName blob.obj; // Name for the IOobject + // or + surface triSurfaceMesh; // Same as surface type + } + + + //- Points centre within sphere + { + source sphereToPoint; + origin (0.2 0.2 -10); + radius 5.0; + // optional + innerRadius 1.0; + } + + + //- Select based on surface + { + source surfaceToPoint; + file "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 ,, + } + + + //- Points from pointZone + { + source zoneToPoint; + zones (".*Zone"); // Names of pointZones, word or regex + // OR zone ".*Zone"; // Name of pointZone, word or regex + + //- Compat + // sourceInfo + // { + // name ".*Zone"; + // } + } +} + + +// cellZoneSet +// ~~~~~~~~~~~ +// Manipulates a cellZone (as well as a cellSet) +// Takes any cellSet source. The difference with a cellSet is +// - reads the cells from the cellZone, not the cellSet +// - write to the cellZone as well as the cellSet + +cellZoneSet_doc +{ + // For backwards compatibility: + + //- Select based on cellSet + { + source setToCellZone; + set c0; // name of cellSet + } +} + + +// faceZoneSet +// ~~~~~~~~~~~ +// Manipulates a faceZone (as well as a faceSet). +// It can only be used with special sources. + +faceZoneSet_doc +{ + //- Select from another faceZone + { + source faceZoneToFaceZone; + zone z1; // Zone name, no regex + } + + + //- Select based on surface. Orientation from normals on surface + { + source searchableSurfaceToFaceZone; + surfaceType searchableSphere; + surfaceName blob.obj; // Optional name if surface triSurfaceMesh + + // or + surface searchableSphere; // Same as 'surfaceType' + + // Parameters for surface + origin (0.05 0.05 0.005); + radius 0.025; + } + + + //- Select based on faceSet, using supplied normal to determine orientation + { + source setAndNormalToFaceZone; + faceSet f0; // name of faceSet + normal (1 0 0); // normal orientation + } + + + //- Select based on faceSet without orientation + { + source setToFaceZone; + faceSet 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 + flip false; // optional: flip the faceZone (so now the cellSet + // is the master side) + } +} + + +// pointZoneSet +// ~~~~~~~~~~~~ +// Manipulates a pointZone (as well as a pointSet) +// Takes any pointSet source. The difference with a pointSet is +// - reads the cells from the pointZone, not the pointSet +// - write to the pointZone as well as the pointSet + +pointZoneSet_doc +{ + // For backwards compatibility + //- Select based on pointSet + { + source setToPointZone; + set p0; // name of pointSet + } +} + + +// ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/flange/system/topoSetDict-background b/tutorials/mesh/foamyHexMesh/flange/system/topoSetDict-background index c09d82ac66d8cb58867ca5e2efb49b663e931b26..27c3522e903812c8d8c155868274f2aadcb0fa27 100644 --- a/tutorials/mesh/foamyHexMesh/flange/system/topoSetDict-background +++ b/tutorials/mesh/foamyHexMesh/flange/system/topoSetDict-background @@ -14,290 +14,6 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// 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 : add/subtract/subset/new -// 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; -// { -// zones (".*Zone"); // Name of cellZones, regular expressions allowed -// zone ".*Zone"; // Name of cellZone, regular expressions allowed -// } -// -// // Cells on master or slave side of faceZone -// source faceZoneToCell; -// { -// zones (".*Zone"); // Name of faceZones, regular expressions allowed -// zone ".*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; -// { -// origin (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; -// { -// field 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; -// { -// patch ".*Wall"; // Name of patch, regular expressions allowed -// } -// -// // All faces of faceZone -// source zoneToFace; -// { -// zone ".*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; -// { -// zone ".*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 ( {