mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
295 lines
8.1 KiB
C++
Executable File
295 lines
8.1 KiB
C++
Executable File
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: 2.3.0 |
|
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
| \\/ 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/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
|
|
// 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
|
|
// {
|
|
// 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
|
|
// }
|
|
//
|
|
// // 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
|
|
// {
|
|
// centre (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 "www.avl.com-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
|
|
// {
|
|
// 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;
|
|
// 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
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// cellZoneSet
|
|
// ~~~~~~~~~~~
|
|
// (mirrors operations on a cellSet into a cellZone)
|
|
//
|
|
// // Select based on cellSet
|
|
// source setToCellZone;
|
|
// sourceInfo
|
|
// {
|
|
// set c0; // name of cellSet
|
|
// }
|
|
//
|
|
|
|
actions
|
|
(
|
|
// Example:pick up internal faces on outside of cellSet
|
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
// Load initial cellSet
|
|
{
|
|
name c0;
|
|
type cellSet;
|
|
action new;
|
|
source boxToCell;
|
|
sourceInfo
|
|
{
|
|
// FYI Overall domain bounding box (0 0 0) (0.2 0.05 0.5)
|
|
// initial point (0.0501 0.02501 0.101)
|
|
box (0.04501 0.01501 0.0951) (0.05501 0.03501 0.1051);
|
|
}
|
|
}
|
|
|
|
|
|
/* FYI:
|
|
(0.05 0.025 0.15) // above injection point
|
|
(0.05 0.025 0.05) // below injection point
|
|
(0.1 0.025 0.1) // right of injection point
|
|
*/
|
|
|
|
{
|
|
name probeZone1;
|
|
type cellSet;
|
|
action new;
|
|
source boxToCell;
|
|
sourceInfo
|
|
{
|
|
box (0.04501 0.01901 0.14501) (0.05401 0.03001 0.1551);
|
|
}
|
|
}
|
|
|
|
{
|
|
name probeZone2;
|
|
type cellSet;
|
|
action new;
|
|
source boxToCell;
|
|
sourceInfo
|
|
{
|
|
box (0.04501 0.01901 0.045001) (0.05401 0.03001 0.055051);
|
|
}
|
|
}
|
|
|
|
{
|
|
name probeZone3;
|
|
type cellSet;
|
|
action new;
|
|
source boxToCell;
|
|
sourceInfo
|
|
{
|
|
box (0.095501 0.01901 0.09501) (0.105401 0.03001 0.10551);
|
|
}
|
|
}
|
|
|
|
|
|
{
|
|
name probeZone1;
|
|
type cellZoneSet;
|
|
action new;
|
|
source setToCellZone;
|
|
sourceInfo
|
|
{
|
|
set probeZone1;
|
|
}
|
|
}
|
|
{
|
|
name probeZone2;
|
|
type cellZoneSet;
|
|
action new;
|
|
source setToCellZone;
|
|
sourceInfo
|
|
{
|
|
set probeZone2;
|
|
}
|
|
}
|
|
{
|
|
name probeZone3;
|
|
type cellZoneSet;
|
|
action new;
|
|
source setToCellZone;
|
|
sourceInfo
|
|
{
|
|
set probeZone3;
|
|
}
|
|
}
|
|
);
|
|
|
|
// ************************************************************************* //
|