36 const dictionary& foamyHexMeshDict
39 foamyHexMeshDict_(foamyHexMeshDict)
43 const dictionary& surfDict
45 foamyHexMeshDict_.subDict(
"surfaceConformation")
48 pointPairDistanceCoeff_ =
49 surfDict.get<scalar>(
"pointPairDistanceCoeff");
51 mixedFeaturePointPPDistanceCoeff_ =
52 surfDict.get<scalar>(
"mixedFeaturePointPPDistanceCoeff");
54 featurePointExclusionDistanceCoeff_ =
55 surfDict.get<scalar>(
"featurePointExclusionDistanceCoeff");
57 featureEdgeExclusionDistanceCoeff_ =
58 surfDict.get<scalar>(
"featureEdgeExclusionDistanceCoeff");
60 surfaceSearchDistanceCoeff_ =
61 surfDict.get<scalar>(
"surfaceSearchDistanceCoeff");
63 maxSurfaceProtrusionCoeff_ =
64 surfDict.get<scalar>(
"maxSurfaceProtrusionCoeff");
66 maxQuadAngle_ = surfDict.get<scalar>(
"maxQuadAngle");
68 surfaceConformationRebuildFrequency_ =
max
71 surfDict.get<label>(
"surfaceConformationRebuildFrequency")
75 const dictionary& featurePointControlsDict
77 surfDict.subDict(
"featurePointControls")
80 specialiseFeaturePoints_ =
81 featurePointControlsDict.get<Switch>(
"specialiseFeaturePoints");
84 featurePointControlsDict.get<Switch>(
"guardFeaturePoints");
87 featurePointControlsDict.get<Switch>(
"edgeAiming");
89 if (!guardFeaturePoints_)
92 featurePointControlsDict.get<Switch>(
"snapFeaturePoints");
96 featurePointControlsDict.get<Switch>(
"circulateEdges");
100 const dictionary& conformationControlsDict
102 surfDict.subDict(
"conformationControls")
105 surfacePtExclusionDistanceCoeff_ =
106 conformationControlsDict.get<scalar>(
"surfacePtExclusionDistanceCoeff");
108 edgeSearchDistCoeffSqr_ =
sqr
110 conformationControlsDict.get<scalar>(
"edgeSearchDistCoeff")
113 surfacePtReplaceDistCoeffSqr_ =
sqr
115 conformationControlsDict.get<scalar>(
"surfacePtReplaceDistCoeff")
118 maxConformationIterations_ =
119 conformationControlsDict.get<label>(
"maxIterations");
121 iterationToInitialHitRatioLimit_ =
122 conformationControlsDict.get<scalar>(
"iterationToInitialHitRatioLimit");
127 const dictionary& motionDict(foamyHexMeshDict_.subDict(
"motionControl"));
129 defaultCellSize_ = motionDict.get<scalar>(
"defaultCellSize");
132 motionDict.get<scalar>(
"minimumCellSizeCoeff")*defaultCellSize_;
135 motionDict.getOrDefault<Switch>(
"objOutput",
false);
138 motionDict.getOrDefault<Switch>(
"timeChecks",
false);
141 motionDict.getOrDefault<Switch>(
"printVertexInfo",
false);
143 if (Pstream::parRun())
145 maxLoadUnbalance_ = motionDict.get<scalar>(
"maxLoadUnbalance");
149 maxLoadUnbalance_ = -1;
152 cosAlignmentAcceptanceAngle_ =
cos
154 degToRad(motionDict.get<scalar>(
"alignmentAcceptanceAngle"))
160 const dictionary& insertionDict
162 motionDict.subDict(
"pointInsertionCriteria")
165 insertionDistCoeff_ =
166 insertionDict.get<scalar>(
"cellCentreDistCoeff");
168 faceAreaRatioCoeff_ =
169 insertionDict.get<scalar>(
"faceAreaRatioCoeff");
171 cosInsertionAcceptanceAngle_ =
cos
173 degToRad(insertionDict.get<scalar>(
"acceptanceAngle"))
178 const dictionary& removalDict
180 motionDict.subDict(
"pointRemovalCriteria")
184 removalDict.get<scalar>(
"cellCentreDistCoeff");
188 const dictionary& filteringDict
190 foamyHexMeshDict_.subDict(
"polyMeshFiltering")
194 filteringDict.getOrDefault<Switch>(
"filterEdges",
true);
197 filteringDict.getOrDefault<Switch>(
"filterFaces",
false);
201 filterEdges_ = filterFaces_;
205 filteringDict.get<Switch>(
"writeTetDualMesh");
207 writeCellShapeControlMesh_ =
208 filteringDict.get<Switch>(
"writeCellShapeControlMesh");
210 if (Pstream::parRun())
212 writeBackgroundMeshDecomposition_ =
213 filteringDict.get<Switch>(
"writeBackgroundMeshDecomposition");
217 writeBackgroundMeshDecomposition_ = Switch::FALSE;
Controls for the conformalVoronoiMesh mesh generator.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
constexpr scalar degToRad(const scalar deg) noexcept
Conversion from degrees to radians.
dimensionedScalar cos(const dimensionedScalar &ds)