mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: avoid xfer on simple data types
- in many places can use move construcors or rely on RVO
This commit is contained in:
@ -194,6 +194,7 @@ int main(int argc, char *argv[])
|
|||||||
argList::addBoolOption("ext", "test handing of file extensions");
|
argList::addBoolOption("ext", "test handing of file extensions");
|
||||||
argList::addBoolOption("construct", "test constructors");
|
argList::addBoolOption("construct", "test constructors");
|
||||||
argList::addBoolOption("relative", "test relative operations");
|
argList::addBoolOption("relative", "test relative operations");
|
||||||
|
argList::addBoolOption("system", "test filesystem operations");
|
||||||
argList::addBoolOption("default", "reinstate default tests");
|
argList::addBoolOption("default", "reinstate default tests");
|
||||||
argList::addNote("runs default tests or specified ones only");
|
argList::addNote("runs default tests or specified ones only");
|
||||||
|
|
||||||
@ -485,72 +486,8 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!defaultTests)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DynamicList<word> wrdList
|
|
||||||
{
|
|
||||||
"hello",
|
|
||||||
"hello1",
|
|
||||||
"hello2",
|
|
||||||
"hello3",
|
|
||||||
"hello4.hmm"
|
|
||||||
};
|
|
||||||
|
|
||||||
fileName pathName(wrdList);
|
|
||||||
|
|
||||||
Info<< "pathName = " << pathName << nl
|
|
||||||
<< "pathName.name() = >" << pathName.name() << "<\n"
|
|
||||||
<< "pathName.path() = " << pathName.path() << nl
|
|
||||||
<< "pathName.ext() = >" << pathName.ext() << "<\n"
|
|
||||||
<< "pathName.name(true) = >" << pathName.name(true) << "<\n";
|
|
||||||
|
|
||||||
Info<< "pathName.components() = " << pathName.components() << nl
|
|
||||||
<< "pathName.component(2) = " << pathName.component(2) << nl
|
|
||||||
<< endl;
|
|
||||||
|
|
||||||
// try with different combination
|
|
||||||
// The final one should emit warnings
|
|
||||||
for (label start = 0; start <= wrdList.size(); ++start)
|
|
||||||
{
|
|
||||||
fileName instance, local;
|
|
||||||
word name;
|
|
||||||
|
|
||||||
fileName path(SubList<word>(wrdList, wrdList.size()-start, start));
|
|
||||||
fileName path2 = "."/path;
|
|
||||||
|
|
||||||
IOobject::fileNameComponents
|
|
||||||
(
|
|
||||||
path,
|
|
||||||
instance,
|
|
||||||
local,
|
|
||||||
name
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "IOobject::fileNameComponents for " << path << nl
|
|
||||||
<< " instance = " << instance << nl
|
|
||||||
<< " local = " << local << nl
|
|
||||||
<< " name = " << name << endl;
|
|
||||||
|
|
||||||
IOobject::fileNameComponents
|
|
||||||
(
|
|
||||||
path2,
|
|
||||||
instance,
|
|
||||||
local,
|
|
||||||
name
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "IOobject::fileNameComponents for " << path2 << nl
|
|
||||||
<< " instance = " << instance << nl
|
|
||||||
<< " local = " << local << nl
|
|
||||||
<< " name = " << name << endl;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Test some copying and deletion
|
// Test some copying and deletion
|
||||||
|
if (args.found("system"))
|
||||||
{
|
{
|
||||||
const fileName dirA("dirA");
|
const fileName dirA("dirA");
|
||||||
const fileName lnA("lnA");
|
const fileName lnA("lnA");
|
||||||
@ -663,6 +600,71 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!defaultTests)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicList<word> wrdList
|
||||||
|
{
|
||||||
|
"hello",
|
||||||
|
"hello1",
|
||||||
|
"hello2",
|
||||||
|
"hello3",
|
||||||
|
"hello4.hmm"
|
||||||
|
};
|
||||||
|
|
||||||
|
fileName pathName(wrdList);
|
||||||
|
|
||||||
|
Info<< "pathName = " << pathName << nl
|
||||||
|
<< "pathName.name() = >" << pathName.name() << "<\n"
|
||||||
|
<< "pathName.path() = " << pathName.path() << nl
|
||||||
|
<< "pathName.ext() = >" << pathName.ext() << "<\n"
|
||||||
|
<< "pathName.name(true) = >" << pathName.name(true) << "<\n";
|
||||||
|
|
||||||
|
Info<< "pathName.components() = " << pathName.components() << nl
|
||||||
|
<< "pathName.component(2) = " << pathName.component(2) << nl
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
// try with different combination
|
||||||
|
// The final one should emit warnings
|
||||||
|
for (label start = 0; start <= wrdList.size(); ++start)
|
||||||
|
{
|
||||||
|
fileName instance, local;
|
||||||
|
word name;
|
||||||
|
|
||||||
|
fileName path(SubList<word>(wrdList, wrdList.size()-start, start));
|
||||||
|
fileName path2 = "."/path;
|
||||||
|
|
||||||
|
IOobject::fileNameComponents
|
||||||
|
(
|
||||||
|
path,
|
||||||
|
instance,
|
||||||
|
local,
|
||||||
|
name
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "IOobject::fileNameComponents for " << path << nl
|
||||||
|
<< " instance = " << instance << nl
|
||||||
|
<< " local = " << local << nl
|
||||||
|
<< " name = " << name << endl;
|
||||||
|
|
||||||
|
IOobject::fileNameComponents
|
||||||
|
(
|
||||||
|
path2,
|
||||||
|
instance,
|
||||||
|
local,
|
||||||
|
name
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "IOobject::fileNameComponents for " << path2 << nl
|
||||||
|
<< " instance = " << instance << nl
|
||||||
|
<< " local = " << local << nl
|
||||||
|
<< " name = " << name << endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// test findEtcFile
|
// test findEtcFile
|
||||||
Info<< "\n\nfindEtcFile tests:" << nl
|
Info<< "\n\nfindEtcFile tests:" << nl
|
||||||
<< " controlDict => " << findEtcFile("controlDict") << nl
|
<< " controlDict => " << findEtcFile("controlDict") << nl
|
||||||
|
|||||||
@ -46,6 +46,9 @@ void printCleaning(fileName& pathName)
|
|||||||
<< " name() = " << pathName.name() << nl
|
<< " name() = " << pathName.name() << nl
|
||||||
<< " joined = " << pathName.path()/pathName.name() << nl << nl;
|
<< " joined = " << pathName.path()/pathName.name() << nl << nl;
|
||||||
|
|
||||||
|
Info<< "components = " << flatOutput(pathName.components()) << nl;
|
||||||
|
Info<< "component 2 = " << pathName.component(2) << nl;
|
||||||
|
|
||||||
pathName.clean();
|
pathName.clean();
|
||||||
|
|
||||||
Info<< "cleaned = " << pathName << nl
|
Info<< "cleaned = " << pathName << nl
|
||||||
|
|||||||
@ -1458,7 +1458,7 @@ Foam::instantList Foam::fileOperations::masterUncollatedFileOperation::findTimes
|
|||||||
}
|
}
|
||||||
Pstream::scatter(times);
|
Pstream::scatter(times);
|
||||||
|
|
||||||
instantList* tPtr = new instantList(times.xfer());
|
instantList* tPtr = new instantList(std::move(times));
|
||||||
|
|
||||||
times_.insert(directory, tPtr);
|
times_.insert(directory, tPtr);
|
||||||
|
|
||||||
|
|||||||
@ -69,11 +69,11 @@ public:
|
|||||||
//- Construct given size, with invalid point labels (-1)
|
//- Construct given size, with invalid point labels (-1)
|
||||||
explicit inline cell(const label sz);
|
explicit inline cell(const label sz);
|
||||||
|
|
||||||
//- Construct from list of labels
|
//- Copy construct from list of labels
|
||||||
explicit inline cell(const labelUList& lst);
|
explicit inline cell(const labelUList& lst);
|
||||||
|
|
||||||
//- Construct by transferring list of labels
|
//- Move construct from list of labels
|
||||||
explicit inline cell(const Xfer<labelList>& lst);
|
explicit inline cell(labelList&& lst);
|
||||||
|
|
||||||
//- Construct from Istream
|
//- Construct from Istream
|
||||||
inline cell(Istream& is);
|
inline cell(Istream& is);
|
||||||
|
|||||||
@ -41,9 +41,9 @@ inline Foam::cell::cell(const labelUList& lst)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
inline Foam::cell::cell(const Xfer<labelList>& lst)
|
inline Foam::cell::cell(labelList&& lst)
|
||||||
:
|
:
|
||||||
labelList(lst)
|
labelList(std::move(lst))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -606,23 +606,26 @@ Foam::face Foam::face::reverseFace() const
|
|||||||
// Reverse the label list and return
|
// Reverse the label list and return
|
||||||
// The starting points of the original and reverse face are identical.
|
// The starting points of the original and reverse face are identical.
|
||||||
|
|
||||||
const labelList& f = *this;
|
const labelUList& origFace = *this;
|
||||||
labelList newList(size());
|
const label len = origFace.size();
|
||||||
|
|
||||||
newList[0] = f[0];
|
face newFace(len);
|
||||||
|
if (len)
|
||||||
for (label pointi = 1; pointi < newList.size(); pointi++)
|
|
||||||
{
|
{
|
||||||
newList[pointi] = f[size() - pointi];
|
newFace[0] = origFace[0];
|
||||||
|
for (label i=1; i < len; ++i)
|
||||||
|
{
|
||||||
|
newFace[i] = origFace[len - i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return face(xferMove(newList));
|
return newFace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::label Foam::face::which(const label globalIndex) const
|
Foam::label Foam::face::which(const label globalIndex) const
|
||||||
{
|
{
|
||||||
const labelList& f = *this;
|
const labelUList& f = *this;
|
||||||
|
|
||||||
forAll(f, localIdx)
|
forAll(f, localIdx)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -150,20 +150,17 @@ public:
|
|||||||
//- Construct given size, with invalid point labels (-1)
|
//- Construct given size, with invalid point labels (-1)
|
||||||
explicit inline face(const label sz);
|
explicit inline face(const label sz);
|
||||||
|
|
||||||
//- Construct from list of labels
|
//- Copy construct from list of labels
|
||||||
explicit inline face(const labelUList& lst);
|
explicit inline face(const labelUList& lst);
|
||||||
|
|
||||||
//- Construct from list of labels
|
//- Copy construct from list of labels
|
||||||
template<unsigned Size>
|
template<unsigned Size>
|
||||||
explicit inline face(const FixedList<label, Size>& lst);
|
explicit inline face(const FixedList<label, Size>& lst);
|
||||||
|
|
||||||
//- Construct from an initializer list of labels
|
//- Copy construct from an initializer list of labels
|
||||||
explicit inline face(std::initializer_list<label> lst);
|
explicit inline face(std::initializer_list<label> lst);
|
||||||
|
|
||||||
//- Transfer (move) construct
|
//- Move construct from list of labels
|
||||||
explicit inline face(const Xfer<labelList>& lst);
|
|
||||||
|
|
||||||
//- Move construct
|
|
||||||
explicit inline face(labelList&& lst);
|
explicit inline face(labelList&& lst);
|
||||||
|
|
||||||
//- Copy construct from triFace
|
//- Copy construct from triFace
|
||||||
|
|||||||
@ -70,12 +70,6 @@ inline Foam::face::face(std::initializer_list<label> lst)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
inline Foam::face::face(const Xfer<labelList>& lst)
|
|
||||||
:
|
|
||||||
labelList(lst)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
inline Foam::face::face(labelList&& lst)
|
inline Foam::face::face(labelList&& lst)
|
||||||
:
|
:
|
||||||
labelList(std::move(lst))
|
labelList(std::move(lst))
|
||||||
|
|||||||
@ -94,12 +94,6 @@ Foam::globalIndex::globalIndex(const label localSize)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::globalIndex::globalIndex(const labelList& offsets)
|
|
||||||
:
|
|
||||||
offsets_(offsets)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
Foam::globalIndex::globalIndex(Istream& is)
|
Foam::globalIndex::globalIndex(Istream& is)
|
||||||
{
|
{
|
||||||
is >> offsets_;
|
is >> offsets_;
|
||||||
|
|||||||
@ -74,7 +74,7 @@ public:
|
|||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct null
|
//- Construct null
|
||||||
inline globalIndex();
|
globalIndex() = default;
|
||||||
|
|
||||||
//- Construct from local max size. Does communication with default
|
//- Construct from local max size. Does communication with default
|
||||||
// communicator and message tag.
|
// communicator and message tag.
|
||||||
@ -90,11 +90,11 @@ public:
|
|||||||
const bool parallel // use parallel comms
|
const bool parallel // use parallel comms
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from components
|
//- Copy construct from list of labels
|
||||||
globalIndex(const labelList& offsets);
|
inline globalIndex(const labelUList& offsets);
|
||||||
|
|
||||||
//- Construct from components
|
//- Move construct from list of labels
|
||||||
inline globalIndex(const Xfer<labelList>& offsets);
|
inline globalIndex(labelList&& offsets);
|
||||||
|
|
||||||
//- Construct from Istream
|
//- Construct from Istream
|
||||||
globalIndex(Istream& is);
|
globalIndex(Istream& is);
|
||||||
|
|||||||
@ -27,13 +27,15 @@ License
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::globalIndex::globalIndex()
|
inline Foam::globalIndex::globalIndex(const labelUList& offsets)
|
||||||
|
:
|
||||||
|
offsets_(offsets)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
Foam::globalIndex::globalIndex(const Xfer<labelList>& offsets)
|
inline Foam::globalIndex::globalIndex(labelList&& offsets)
|
||||||
:
|
:
|
||||||
offsets_(offsets)
|
offsets_(std::move(offsets))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1545,9 +1545,8 @@ void Foam::globalMeshData::calcGlobalPointBoundaryCells() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boundaryCellsPtr_.reset(new labelList());
|
boundaryCellsPtr_.reset(new labelList(std::move(cellMap)));
|
||||||
labelList& boundaryCells = boundaryCellsPtr_();
|
labelList& boundaryCells = boundaryCellsPtr_();
|
||||||
boundaryCells.transfer(cellMap.shrink());
|
|
||||||
|
|
||||||
|
|
||||||
// Convert point-cells to global (boundary)cell numbers
|
// Convert point-cells to global (boundary)cell numbers
|
||||||
|
|||||||
@ -29,6 +29,7 @@ License
|
|||||||
#include "OSspecific.H"
|
#include "OSspecific.H"
|
||||||
#include "wordRe.H"
|
#include "wordRe.H"
|
||||||
#include "fileOperation.H"
|
#include "fileOperation.H"
|
||||||
|
#include "stringOps.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -463,28 +464,20 @@ bool Foam::fileName::hasExt(const wordRe& ending) const
|
|||||||
|
|
||||||
Foam::wordList Foam::fileName::components(const char delimiter) const
|
Foam::wordList Foam::fileName::components(const char delimiter) const
|
||||||
{
|
{
|
||||||
DynamicList<word> wrdList(20);
|
const auto parsed = stringOps::split<string>(*this, delimiter);
|
||||||
|
|
||||||
size_type beg=0, end=0;
|
wordList words(parsed.size());
|
||||||
|
|
||||||
while ((end = find(delimiter, beg)) != npos)
|
label i = 0;
|
||||||
|
for (const auto& sub : parsed)
|
||||||
{
|
{
|
||||||
// Avoid empty element (caused by doubled slashes)
|
// Could easily filter out '.' here too
|
||||||
if (beg < end)
|
words[i] = sub.str();
|
||||||
{
|
++i;
|
||||||
wrdList.append(substr(beg, end-beg));
|
|
||||||
}
|
|
||||||
beg = end + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoid empty trailing element
|
// As a plain wordList
|
||||||
if (beg < size())
|
return words;
|
||||||
{
|
|
||||||
wrdList.append(substr(beg));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transfer to wordList
|
|
||||||
return wordList(wrdList.xfer());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -494,7 +487,14 @@ Foam::word Foam::fileName::component
|
|||||||
const char delimiter
|
const char delimiter
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return components(delimiter)[cmpt];
|
const auto parsed = stringOps::split<string>(*this, delimiter);
|
||||||
|
|
||||||
|
if (cmpt < parsed.size())
|
||||||
|
{
|
||||||
|
return parsed[cmpt].str();
|
||||||
|
}
|
||||||
|
|
||||||
|
return word();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -545,8 +545,6 @@ void Foam::polyDualMesh::splitFace
|
|||||||
if (subFace.size() > 2)
|
if (subFace.size() > 2)
|
||||||
{
|
{
|
||||||
// Enough vertices to create a face from.
|
// Enough vertices to create a face from.
|
||||||
subFace.shrink();
|
|
||||||
|
|
||||||
dualFaces.append(face(subFace));
|
dualFaces.append(face(subFace));
|
||||||
dualOwner.append(meshPointi);
|
dualOwner.append(meshPointi);
|
||||||
dualNeighbour.append(-1);
|
dualNeighbour.append(-1);
|
||||||
@ -559,8 +557,6 @@ void Foam::polyDualMesh::splitFace
|
|||||||
if (subFace.size() > 2)
|
if (subFace.size() > 2)
|
||||||
{
|
{
|
||||||
// Enough vertices to create a face from.
|
// Enough vertices to create a face from.
|
||||||
subFace.shrink();
|
|
||||||
|
|
||||||
dualFaces.append(face(subFace));
|
dualFaces.append(face(subFace));
|
||||||
dualOwner.append(meshPointi);
|
dualOwner.append(meshPointi);
|
||||||
dualNeighbour.append(-1);
|
dualNeighbour.append(-1);
|
||||||
@ -1194,18 +1190,10 @@ void Foam::polyDualMesh::calcDual
|
|||||||
|
|
||||||
// Transfer face info to straight lists
|
// Transfer face info to straight lists
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
faceList dualFaces(dynDualFaces.shrink(), true);
|
faceList dualFaces(std::move(dynDualFaces));
|
||||||
dynDualFaces.clear();
|
labelList dualOwner(std::move(dynDualOwner));
|
||||||
|
labelList dualNeighbour(std::move(dynDualNeighbour));
|
||||||
labelList dualOwner(dynDualOwner.shrink(), true);
|
labelList dualRegion(std::move(dynDualRegion));
|
||||||
dynDualOwner.clear();
|
|
||||||
|
|
||||||
labelList dualNeighbour(dynDualNeighbour.shrink(), true);
|
|
||||||
dynDualNeighbour.clear();
|
|
||||||
|
|
||||||
labelList dualRegion(dynDualRegion.shrink(), true);
|
|
||||||
dynDualRegion.clear();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Dump faces.
|
// Dump faces.
|
||||||
|
|||||||
@ -89,7 +89,7 @@ void Foam::potential::setSiteIdList(const dictionary& moleculePropertiesDict)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siteIdList_.transfer(pairPotentialSiteIdList.shrink());
|
siteIdList_.transfer(pairPotentialSiteIdList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -172,7 +172,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit
|
|||||||
{
|
{
|
||||||
offsets[i] = mesh().nFaces();
|
offsets[i] = mesh().nFaces();
|
||||||
}
|
}
|
||||||
const globalIndex globalRegions(offsets.xfer());
|
const globalIndex globalRegions(std::move(offsets));
|
||||||
|
|
||||||
// Minimise regions across connected cells
|
// Minimise regions across connected cells
|
||||||
// Note: still uses global decisions so all processors are running
|
// Note: still uses global decisions so all processors are running
|
||||||
@ -215,7 +215,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit
|
|||||||
compactOffsets[i] = globalToCompact.size();
|
compactOffsets[i] = globalToCompact.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
return autoPtr<globalIndex>(new globalIndex(compactOffsets.xfer()));
|
return autoPtr<globalIndex>(new globalIndex(std::move(compactOffsets)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -285,7 +285,7 @@ Foam::searchableSurfaceCollection::~searchableSurfaceCollection()
|
|||||||
|
|
||||||
const Foam::wordList& Foam::searchableSurfaceCollection::regions() const
|
const Foam::wordList& Foam::searchableSurfaceCollection::regions() const
|
||||||
{
|
{
|
||||||
if (regions_.size() == 0)
|
if (regions_.empty())
|
||||||
{
|
{
|
||||||
regionOffset_.setSize(subGeom_.size());
|
regionOffset_.setSize(subGeom_.size());
|
||||||
|
|
||||||
@ -309,7 +309,7 @@ const Foam::wordList& Foam::searchableSurfaceCollection::regions() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
regions_.transfer(allRegions.shrink());
|
regions_.transfer(allRegions);
|
||||||
}
|
}
|
||||||
return regions_;
|
return regions_;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -298,8 +298,8 @@ Foam::distributedTriSurfaceMesh::distributeSegments
|
|||||||
sendMap[proci].transfer(dynSendMap[proci]);
|
sendMap[proci].transfer(dynSendMap[proci]);
|
||||||
}
|
}
|
||||||
|
|
||||||
allSegments.transfer(dynAllSegments.shrink());
|
allSegments.transfer(dynAllSegments);
|
||||||
allSegmentMap.transfer(dynAllSegmentMap.shrink());
|
allSegmentMap.transfer(dynAllSegmentMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -743,9 +743,9 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
|
|||||||
sendMap[proci].transfer(dynSendMap[proci]);
|
sendMap[proci].transfer(dynSendMap[proci]);
|
||||||
}
|
}
|
||||||
|
|
||||||
allCentres.transfer(dynAllCentres.shrink());
|
allCentres.transfer(dynAllCentres);
|
||||||
allRadiusSqr.transfer(dynAllRadiusSqr.shrink());
|
allRadiusSqr.transfer(dynAllRadiusSqr);
|
||||||
allSegmentMap.transfer(dynAllSegmentMap.shrink());
|
allSegmentMap.transfer(dynAllSegmentMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user