Files
openfoam/src/parallel/decompose/decompositionMethods/decompositionConstraints/refinementHistory/refinementHistoryConstraint.C
Mark Olesen 8fabc32539 ENH: simplify objectRegistry access names (issue #322)
New name:  findObject(), cfindObject()
  Old name:  lookupObjectPtr()

      Return a const pointer or nullptr on failure.

  New name:  findObject()
  Old name:  --

      Return a non-const pointer or nullptr on failure.

  New name:  getObjectPtr()
  Old name:  lookupObjectRefPtr()

      Return a non-const pointer or nullptr on failure.
      Can be called on a const object and it will perform a
      const_cast.

- use these updated names and functionality in more places

NB: The older methods names are deprecated, but continue to be defined.
2018-10-17 16:44:10 +02:00

204 lines
5.2 KiB
C

/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "refinementHistoryConstraint.H"
#include "addToRunTimeSelectionTable.H"
#include "syncTools.H"
#include "refinementHistory.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
defineTypeName(refinementHistoryConstraint);
addToRunTimeSelectionTable
(
decompositionConstraint,
refinementHistoryConstraint,
dictionary
);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::refinementHistoryConstraint::refinementHistoryConstraint
(
const dictionary& constraintsDict,
const word& modelType
)
:
decompositionConstraint(constraintsDict, typeName)
{
if (decompositionConstraint::debug)
{
Info<< type() << " : setting constraints to refinement history"
<< endl;
}
}
Foam::refinementHistoryConstraint::refinementHistoryConstraint()
:
decompositionConstraint(dictionary(), typeName)
{
if (decompositionConstraint::debug)
{
Info<< type() << " : setting constraints to refinement history"
<< endl;
}
}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::refinementHistoryConstraint::add
(
const polyMesh& mesh,
boolList& blockedFace,
PtrList<labelList>& specifiedProcessorFaces,
labelList& specifiedProcessor,
List<labelPair>& explicitConnections
) const
{
const refinementHistory* refPtr =
mesh.findObject<refinementHistory>("refinementHistory");
autoPtr<const refinementHistory> storagePtr;
if (!refPtr)
{
storagePtr.reset
(
new refinementHistory
(
IOobject
(
"refinementHistory",
mesh.facesInstance(),
polyMesh::meshSubDir,
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh.nCells()
)
);
}
if (decompositionConstraint::debug)
{
if (refPtr)
{
Info<< type() << " : found refinementHistory" << nl;
}
else
{
Info<< type() << " : reading refinementHistory from time "
<< mesh.facesInstance() << nl;
}
}
const refinementHistory& history =
(
storagePtr.valid()
? *storagePtr
: *refPtr
);
if (history.active())
{
// refinementHistory itself implements decompositionConstraint
history.add
(
blockedFace,
specifiedProcessorFaces,
specifiedProcessor,
explicitConnections
);
}
}
void Foam::refinementHistoryConstraint::apply
(
const polyMesh& mesh,
const boolList& blockedFace,
const PtrList<labelList>& specifiedProcessorFaces,
const labelList& specifiedProcessor,
const List<labelPair>& explicitConnections,
labelList& decomposition
) const
{
const refinementHistory* refPtr =
mesh.findObject<refinementHistory>("refinementHistory");
autoPtr<const refinementHistory> storagePtr;
if (!refPtr)
{
storagePtr.reset
(
new refinementHistory
(
IOobject
(
"refinementHistory",
mesh.facesInstance(),
polyMesh::meshSubDir,
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh.nCells()
)
);
}
const refinementHistory& history =
(
storagePtr.valid()
? *storagePtr
: *refPtr
);
if (history.active())
{
// refinementHistory itself implements decompositionConstraint
history.apply
(
blockedFace,
specifiedProcessorFaces,
specifiedProcessor,
explicitConnections,
decomposition
);
}
}
// ************************************************************************* //