39 dict_.getOrDefault<
Switch>(
"controlMeshQuality", false)
41 collapseEdgesCoeffDict_(dict_.subDict(
"collapseEdgesCoeffs")),
42 collapseFacesCoeffDict_(dict_.subOrEmptyDict(
"collapseFacesCoeffs")),
43 meshQualityCoeffDict_(dict_.subOrEmptyDict(
"controlMeshQualityCoeffs")),
44 minLen_(collapseEdgesCoeffDict_.get<scalar>(
"minimumEdgeLength")),
51 collapseEdgesCoeffDict_.get<scalar>(
"maximumMergeAngle")
57 meshQualityCoeffDict_.getOrDefault<scalar>(
"edgeReductionFactor", -1)
61 meshQualityCoeffDict_.getOrAdd<label>(
"maximumIterations", 1)
65 meshQualityCoeffDict_.getOrAdd<label>(
"maximumSmoothingIterations", 0)
67 initialFaceLengthFactor_
69 collapseFacesCoeffDict_.getOrAdd<scalar>(
"initialFaceLengthFactor", -1)
73 meshQualityCoeffDict_.getOrAdd<scalar>(
"faceReductionFactor", -1)
77 meshQualityCoeffDict_.getOrAdd<label>(
"maxPointErrorCount", 0)
86 os <<
"Merging:" <<
nl
87 <<
" edges with length less than " << minLen() <<
" metres" <<
nl
88 <<
" edges split by a point with edges in line to within "
90 <<
" Minimum edge length reduction factor = "
91 << edgeReductionFactor() <<
nl
94 if (collapseFacesCoeffDict().empty())
96 os <<
"Face collapsing is off" <<
endl;
100 os <<
"Face collapsing is on" <<
endl;
101 os <<
" Initial face length factor = "<< initialFaceLengthFactor()
105 os <<
"Control mesh quality = " << controlMeshQuality().c_str() <<
endl;
107 if (controlMeshQuality())
109 os <<
" Minimum edge length reduction factor = "
110 << edgeReductionFactor() <<
nl
111 <<
" Minimum face area reduction factor = "
112 << faceReductionFactor() <<
endl;
114 os <<
" Maximum number of collapse iterations = " << maxIterations()
117 os <<
" Maximum number of edge/face reduction factor smoothing "
118 <<
"iterations = " << maxSmoothIters() <<
endl;
120 os <<
" Maximum number of times a point can contribute to bad "
121 <<
"faces across " <<
nl
122 <<
" collapse iterations = " << maxPointErrorCount()
126 os <<
"Selectively disabling wanted collapses until resulting quality"
127 <<
" satisfies constraints in system/meshQualityDict" <<
nl
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Class to store the settings for the polyMeshFilter class.
void writeSettings(Ostream &os) const
Write the settings to a stream.
OBJstream os(runTime.globalPath()/outputName)
constexpr scalar degToRad(const scalar deg) noexcept
Conversion from degrees to radians.
Ostream & endl(Ostream &os)
Add newline and flush stream.
constexpr scalar radToDeg() noexcept
Multiplication factor for radians to degrees conversion.
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
constexpr char nl
The newline '\n' character (0x0a)
Unit conversion functions.