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")),
46 collapseEdgesCoeffDict_.lookup<scalar>
55 meshQualityCoeffDict_.lookupOrDefault<scalar>(
"edgeReductionFactor", -1)
59 meshQualityCoeffDict_.lookupOrAddDefault<
label>(
"maximumIterations", 1)
63 meshQualityCoeffDict_.lookupOrAddDefault<
label>
65 "maximumSmoothingIterations",
69 initialFaceLengthFactor_
71 collapseFacesCoeffDict_.lookupOrAddDefault<scalar>
73 "initialFaceLengthFactor",
79 meshQualityCoeffDict_.lookupOrAddDefault<scalar>
81 "faceReductionFactor",
87 meshQualityCoeffDict_.lookupOrAddDefault<
label>(
"maxPointErrorCount", 0)
96 os <<
"Merging:" <<
nl
97 <<
" edges with length less than " << minLen() <<
" meters" <<
nl
98 <<
" edges split by a point with edges in line to within "
100 <<
" Minimum edge length reduction factor = "
101 << edgeReductionFactor() <<
nl
104 if (collapseFacesCoeffDict().empty())
106 os <<
"Face collapsing is off" <<
endl;
110 os <<
"Face collapsing is on" <<
endl;
111 os <<
" Initial face length factor = "<< initialFaceLengthFactor()
115 os <<
"Control mesh quality = " << controlMeshQuality().asText() <<
endl;
117 if (controlMeshQuality())
119 os <<
" Minimum edge length reduction factor = "
120 << edgeReductionFactor() <<
nl
121 <<
" Minimum face area reduction factor = "
122 << faceReductionFactor() <<
endl;
124 os <<
" Maximum number of collapse iterations = " << maxIterations()
127 os <<
" Maximum number of edge/face reduction factor smoothing "
128 <<
"iterations = " << maxSmoothIters() <<
endl;
130 os <<
" Maximum number of times a point can contribute to bad "
131 <<
"faces across " <<
nl
132 <<
" collapse iterations = " << maxPointErrorCount()
136 os <<
"Selectively disabling wanted collapses until resulting quality"
137 <<
" 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.
scalar radToDeg(const scalar rad)
Convert radians to degrees.
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.
dimensionedScalar cos(const dimensionedScalar &ds)
const unitConversion unitDegrees
dimensionedScalar acos(const dimensionedScalar &ds)