281 lines
6.6 KiB
C++
281 lines
6.6 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;
|
|
|
|
root "";
|
|
case "";
|
|
instance "";
|
|
local "";
|
|
|
|
class dictionary;
|
|
object cvMeshDict;
|
|
}
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
|
|
// Important:
|
|
// ----------
|
|
// Any scalar with a name <name>Coeff specifies a value that will be implemented
|
|
// as a faction of the local target cell size
|
|
// Any scalar with a name <name>Size specifies an absolute size.
|
|
|
|
|
|
// Geometry. Definition of all surfaces. All surfaces are of class
|
|
// searchableSurface.
|
|
// Surfaces need to be (almost) closed - use closedTriSurfaceMesh
|
|
// if they are not topologically closed. Surfaces need to be oriented so
|
|
// the space to be meshed is always on the inside of all surfaces. Use e.g.
|
|
// surfaceOrient.
|
|
geometry
|
|
{
|
|
// Internal shape
|
|
coneAndSphere.obj
|
|
{
|
|
name coneAndSphere;
|
|
type triSurfaceMesh;
|
|
tolerance 0.00001;
|
|
}
|
|
|
|
// // Internal shape
|
|
// coneAndSphere
|
|
// {
|
|
// type searchableSurfaceWithGaps;
|
|
// surface coneAndSphere.obj;
|
|
// gap 0.001;
|
|
// }
|
|
|
|
// Bounds of domain
|
|
domain.stl
|
|
{
|
|
type triSurfaceMesh;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
surfaceConformation
|
|
{
|
|
// Point that is inside wanted part of geometry.
|
|
locationInMesh (0 -0.5 0);
|
|
|
|
// Balance this between
|
|
// - very low distance: little chance of interference from other
|
|
// surfaces
|
|
// - largish distance: less non-orthogonality in final cell
|
|
// (circumcentre far away from centroid)
|
|
pointPairDistanceCoeff 0.1;
|
|
|
|
mixedFeaturePointPPDistanceCoeff 5.0;
|
|
|
|
featurePointExclusionDistanceCoeff 0.4;
|
|
|
|
featureEdgeExclusionDistanceCoeff 0.2;
|
|
|
|
surfaceSearchDistanceCoeff 2.5;
|
|
|
|
maxSurfaceProtrusionCoeff 0.1;
|
|
|
|
maxQuadAngle 125;
|
|
|
|
surfaceConformationRebuildFrequency 10;
|
|
|
|
coarseConformationControls
|
|
{
|
|
initial
|
|
{
|
|
edgeSearchDistCoeff 1.1;
|
|
surfacePtReplaceDistCoeff 0.5;
|
|
}
|
|
|
|
iteration
|
|
{
|
|
edgeSearchDistCoeff 1.25;
|
|
surfacePtReplaceDistCoeff 0.7;
|
|
}
|
|
|
|
maxIterations 15;
|
|
|
|
iterationToInitialHitRatioLimit 0.001;
|
|
}
|
|
|
|
fineConformationControls
|
|
{
|
|
initial
|
|
{
|
|
edgeSearchDistCoeff 1.1;
|
|
surfacePtReplaceDistCoeff 0.5;
|
|
}
|
|
|
|
iteration
|
|
{
|
|
edgeSearchDistCoeff 1.25;
|
|
surfacePtReplaceDistCoeff 0.7;
|
|
}
|
|
|
|
maxIterations 15;
|
|
|
|
iterationToInitialHitRatioLimit 0.001;
|
|
}
|
|
|
|
geometryToConformTo
|
|
{
|
|
coneAndSphere
|
|
{
|
|
featureMethod extendedFeatureEdgeMesh;
|
|
extendedFeatureEdgeMesh "coneAndSphere.extendedFeatureEdgeMesh";
|
|
}
|
|
|
|
domain.stl
|
|
{
|
|
featureMethod extendedFeatureEdgeMesh;
|
|
extendedFeatureEdgeMesh "domain.extendedFeatureEdgeMesh";
|
|
}
|
|
|
|
}
|
|
|
|
additionalFeatures {}
|
|
}
|
|
|
|
|
|
initialPoints
|
|
{
|
|
// Do not place point closer than minimumSurfaceDistanceCoeff
|
|
// to the surface. Is fraction of local target cell size (see below)
|
|
minimumSurfaceDistanceCoeff 0.55;
|
|
|
|
initialPointsMethod autoDensity;
|
|
// initialPointsMethod uniformGrid;
|
|
// initialPointsMethod bodyCentredCubic;
|
|
// initialPointsMethod pointFile;
|
|
|
|
// Take boundbox of all geometry. Samples with this box. If too much
|
|
// samples (due to target cell size) in box split box.
|
|
autoDensityDetails
|
|
{
|
|
// Number of refinement levels. Needs to be enough to pick up features
|
|
// due to size ratio.
|
|
minLevels 2;
|
|
// Split box if ratio of min to max size larger than maxSizeRatio
|
|
maxSizeRatio 5.0;
|
|
// Per box sample 3x3x3 internally
|
|
sampleResolution 3;
|
|
// Additionally per face of the box sample 3
|
|
surfaceSampleResolution 3;
|
|
}
|
|
|
|
uniformGridDetails
|
|
{
|
|
initialCellSize 0.0015;
|
|
randomiseInitialGrid yes;
|
|
randomPerturbationCoeff 0.02;
|
|
}
|
|
|
|
bodyCentredCubicDetails
|
|
{
|
|
initialCellSize 0.0015;
|
|
randomiseInitialGrid no;
|
|
randomPerturbationCoeff 0.1;
|
|
}
|
|
|
|
pointFileDetails
|
|
{
|
|
pointFile "constant/internalDelaunayVertices";
|
|
}
|
|
}
|
|
|
|
|
|
motionControl
|
|
{
|
|
defaultCellSize 0.1;
|
|
|
|
// Assign a priority to all requests for cell sizes, the highest overrules.
|
|
defaultPriority 0;
|
|
|
|
cellSizeControlGeometry
|
|
{
|
|
}
|
|
|
|
relaxationModel adaptiveLinear;
|
|
|
|
adaptiveLinearCoeffs
|
|
{
|
|
relaxationStart 1.0;
|
|
relaxationEnd 0.0;
|
|
}
|
|
|
|
objOutput no;
|
|
|
|
timeChecks yes;
|
|
|
|
alignmentSearchSpokes 36;
|
|
|
|
alignmentAcceptanceAngle 48;
|
|
|
|
sizeAndAlignmentRebuildFrequency 20;
|
|
|
|
pointInsertionCriteria
|
|
{
|
|
cellCentreDistCoeff 1.75;
|
|
faceAreaRatioCoeff 0.0025;
|
|
acceptanceAngle 21.5;
|
|
}
|
|
|
|
pointRemovalCriteria
|
|
{
|
|
cellCentreDistCoeff 0.65;
|
|
}
|
|
|
|
faceAreaWeightModel piecewiseLinearRamp;
|
|
|
|
piecewiseLinearRampCoeffs
|
|
{
|
|
lowerAreaFraction 0.5;
|
|
upperAreaFraction 1.0;
|
|
}
|
|
}
|
|
|
|
|
|
polyMeshFiltering
|
|
{
|
|
filterSizeCoeff 0.2;
|
|
mergeClosenessCoeff 1e-4;
|
|
continueFilteringOnBadInitialPolyMesh true;
|
|
filterErrorReductionCoeff 0.5;
|
|
filterCountSkipThreshold 4;
|
|
maxCollapseIterations 25;
|
|
maxConsecutiveEqualFaceSets 5;
|
|
surfaceStepFaceAngle 80;
|
|
edgeCollapseGuardFraction 0.3;
|
|
maxCollapseFaceToPointSideLengthCoeff 0.35;
|
|
}
|
|
|
|
|
|
meshQualityControls
|
|
{
|
|
maxNonOrtho 65;
|
|
maxBoundarySkewness 50;
|
|
maxInternalSkewness 10;
|
|
maxConcave 80;
|
|
minTetQuality 1e-30;
|
|
minVol 0;
|
|
minArea -1;
|
|
minTwist 0.02;
|
|
minDeterminant 0.001;
|
|
minFaceWeight 0.02;
|
|
minVolRatio 0.01;
|
|
minTriangleTwist -1;
|
|
}
|
|
|
|
|
|
// ************************************************************************* //
|