Merge branch 'feature-AMIMethod' into 'develop'

ENH: cyclicAMI: added 'method' specification



See merge request !31
This commit is contained in:
Andrew Heather
2016-04-21 15:09:25 +01:00
2 changed files with 33 additions and 2 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -495,6 +495,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
rotationAngle_(0.0), rotationAngle_(0.0),
separationVector_(vector::zero), separationVector_(vector::zero),
AMIPtr_(NULL), AMIPtr_(NULL),
AMIMethod_(AMIPatchToPatchInterpolation::imFaceAreaWeight),
AMIReverse_(false), AMIReverse_(false),
AMIRequireMatch_(true), AMIRequireMatch_(true),
AMILowWeightCorrection_(-1.0), AMILowWeightCorrection_(-1.0),
@ -525,6 +526,20 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
rotationAngle_(0.0), rotationAngle_(0.0),
separationVector_(vector::zero), separationVector_(vector::zero),
AMIPtr_(NULL), AMIPtr_(NULL),
AMIMethod_
(
AMIPatchToPatchInterpolation::wordTointerpolationMethod
(
dict.lookupOrDefault
(
"method",
AMIPatchToPatchInterpolation::interpolationMethodToWord
(
AMIPatchToPatchInterpolation::imFaceAreaWeight
)
)
)
),
AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)), AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
AMIRequireMatch_(true), AMIRequireMatch_(true),
AMILowWeightCorrection_(dict.lookupOrDefault("lowWeightCorrection", -1.0)), AMILowWeightCorrection_(dict.lookupOrDefault("lowWeightCorrection", -1.0)),
@ -614,6 +629,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
rotationAngle_(pp.rotationAngle_), rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_), separationVector_(pp.separationVector_),
AMIPtr_(NULL), AMIPtr_(NULL),
AMIMethod_(pp.AMIMethod_),
AMIReverse_(pp.AMIReverse_), AMIReverse_(pp.AMIReverse_),
AMIRequireMatch_(pp.AMIRequireMatch_), AMIRequireMatch_(pp.AMIRequireMatch_),
AMILowWeightCorrection_(pp.AMILowWeightCorrection_), AMILowWeightCorrection_(pp.AMILowWeightCorrection_),
@ -645,6 +661,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
rotationAngle_(pp.rotationAngle_), rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_), separationVector_(pp.separationVector_),
AMIPtr_(NULL), AMIPtr_(NULL),
AMIMethod_(pp.AMIMethod_),
AMIReverse_(pp.AMIReverse_), AMIReverse_(pp.AMIReverse_),
AMIRequireMatch_(pp.AMIRequireMatch_), AMIRequireMatch_(pp.AMIRequireMatch_),
AMILowWeightCorrection_(pp.AMILowWeightCorrection_), AMILowWeightCorrection_(pp.AMILowWeightCorrection_),
@ -683,6 +700,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
rotationAngle_(pp.rotationAngle_), rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_), separationVector_(pp.separationVector_),
AMIPtr_(NULL), AMIPtr_(NULL),
AMIMethod_(pp.AMIMethod_),
AMIReverse_(pp.AMIReverse_), AMIReverse_(pp.AMIReverse_),
AMIRequireMatch_(pp.AMIRequireMatch_), AMIRequireMatch_(pp.AMIRequireMatch_),
AMILowWeightCorrection_(pp.AMILowWeightCorrection_), AMILowWeightCorrection_(pp.AMILowWeightCorrection_),
@ -791,7 +809,7 @@ const Foam::AMIPatchToPatchInterpolation& Foam::cyclicAMIPolyPatch::AMI() const
if (!AMIPtr_.valid()) if (!AMIPtr_.valid())
{ {
resetAMI(); resetAMI(AMIMethod_);
} }
return AMIPtr_(); return AMIPtr_();
@ -1080,6 +1098,16 @@ void Foam::cyclicAMIPolyPatch::write(Ostream& os) const
} }
} }
if (AMIMethod_ != AMIPatchToPatchInterpolation::imFaceAreaWeight)
{
os.writeKeyword("method")
<< AMIPatchToPatchInterpolation::interpolationMethodToWord
(
AMIMethod_
)
<< token::END_STATEMENT << nl;
}
if (AMIReverse_) if (AMIReverse_)
{ {
os.writeKeyword("flipNormals") << AMIReverse_ os.writeKeyword("flipNormals") << AMIReverse_

View File

@ -111,6 +111,9 @@ protected:
//- AMI interpolation class //- AMI interpolation class
mutable autoPtr<AMIPatchToPatchInterpolation> AMIPtr_; mutable autoPtr<AMIPatchToPatchInterpolation> AMIPtr_;
//- AMI method
const AMIPatchToPatchInterpolation::interpolationMethod AMIMethod_;
//- Flag to indicate that slave patch should be reversed for AMI //- Flag to indicate that slave patch should be reversed for AMI
const bool AMIReverse_; const bool AMIReverse_;