36 dict_.lookupOrDefault<
Switch>(
"controlMeshQuality", false)
38 collapseEdgesCoeffDict_(dict_.subDict(
"collapseEdgesCoeffs")),
39 collapseFacesCoeffDict_(dict_.subOrEmptyDict(
"collapseFacesCoeffs")),
40 meshQualityCoeffDict_(dict_.subOrEmptyDict(
"controlMeshQualityCoeffs")),
41 minLen_(collapseEdgesCoeffDict_.lookup<scalar>(
"minimumEdgeLength")),
48 collapseEdgesCoeffDict_.lookup<scalar>(
"maximumMergeAngle")
54 meshQualityCoeffDict_.lookupOrDefault<scalar>(
"edgeReductionFactor", -1)
58 meshQualityCoeffDict_.lookupOrAddDefault<
label>(
"maximumIterations", 1)
62 meshQualityCoeffDict_.lookupOrAddDefault<
label>
64 "maximumSmoothingIterations",
68 initialFaceLengthFactor_
70 collapseFacesCoeffDict_.lookupOrAddDefault<scalar>
72 "initialFaceLengthFactor",
78 meshQualityCoeffDict_.lookupOrAddDefault<scalar>
80 "faceReductionFactor",
86 meshQualityCoeffDict_.lookupOrAddDefault<
label>(
"maxPointErrorCount", 0)
95 os <<
"Merging:" <<
nl
96 <<
" edges with length less than " << minLen() <<
" meters" <<
nl
97 <<
" edges split by a point with edges in line to within "
99 <<
" Minimum edge length reduction factor = "
100 << edgeReductionFactor() <<
nl
103 if (collapseFacesCoeffDict().empty())
105 os <<
"Face collapsing is off" <<
endl;
109 os <<
"Face collapsing is on" <<
endl;
110 os <<
" Initial face length factor = "<< initialFaceLengthFactor()
114 os <<
"Control mesh quality = " << controlMeshQuality().asText() <<
endl;
116 if (controlMeshQuality())
118 os <<
" Minimum edge length reduction factor = "
119 << edgeReductionFactor() <<
nl
120 <<
" Minimum face area reduction factor = "
121 << faceReductionFactor() <<
endl;
123 os <<
" Maximum number of collapse iterations = " << maxIterations()
126 os <<
" Maximum number of edge/face reduction factor smoothing "
127 <<
"iterations = " << maxSmoothIters() <<
endl;
129 os <<
" Maximum number of times a point can contribute to bad "
130 <<
"faces across " <<
nl
131 <<
" collapse iterations = " << maxPointErrorCount()
135 os <<
"Selectively disabling wanted collapses until resulting quality"
136 <<
" 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 any number of values (e....
polyMeshFilterSettings(const dictionary &dict)
Construct from dictionary.
void writeSettings(Ostream &os) const
Write the settings to a stream.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
scalar radToDeg(const scalar rad)
Conversion from radians to degrees.
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
scalar degToRad(const scalar deg)
Conversion from degrees to radians.
Unit conversion functions.