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 List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
dimensionedScalar acos(const dimensionedScalar &ds)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Unit conversion functions.
constexpr char nl
The newline '\n' character (0x0a)
polyMeshFilterSettings(const dictionary &dict)
Construct from dictionary.
Ostream & endl(Ostream &os)
Add newline and flush stream.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
dimensionedScalar cos(const dimensionedScalar &ds)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
void writeSettings(Ostream &os) const
Write the settings to a stream.
constexpr scalar radToDeg(const scalar rad) noexcept
Conversion from radians to degrees.
static T getOrAdd(dictionary &dict, const char *name, const T deflt)
constexpr scalar degToRad(const scalar deg) noexcept
Conversion from degrees to radians.