mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
scheduled or non-blocking polyMesh initialisation
This commit is contained in:
@ -28,6 +28,9 @@ License
|
|||||||
#include "polyBoundaryMesh.H"
|
#include "polyBoundaryMesh.H"
|
||||||
#include "facePointPatch.H"
|
#include "facePointPatch.H"
|
||||||
#include "globalPointPatch.H"
|
#include "globalPointPatch.H"
|
||||||
|
#include "PstreamBuffers.H"
|
||||||
|
#include "lduSchedule.H"
|
||||||
|
#include "globalMeshData.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -57,15 +60,47 @@ Foam::pointBoundaryMesh::pointBoundaryMesh
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::pointBoundaryMesh::calcGeometry()
|
void Foam::pointBoundaryMesh::calcGeometry()
|
||||||
|
{
|
||||||
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, patchi)
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
operator[](patchi).initGeometry();
|
operator[](patchi).initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
forAll(*this, patchi)
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
operator[](patchi).calcGeometry();
|
operator[](patchi).calcGeometry(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initGeometry(pBufs);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).calcGeometry(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,32 +132,92 @@ Foam::pointBoundaryMesh::globalPatch() const
|
|||||||
|
|
||||||
void Foam::pointBoundaryMesh::movePoints(const pointField& p)
|
void Foam::pointBoundaryMesh::movePoints(const pointField& p)
|
||||||
{
|
{
|
||||||
pointPatchList& patches = *this;
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
forAll(patches, patchi)
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
patches[patchi].initMovePoints(p);
|
forAll(*this, patchi)
|
||||||
|
{
|
||||||
|
operator[](patchi).initMovePoints(pBufs, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(patches, patchi)
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
patches[patchi].movePoints(p);
|
operator[](patchi).movePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initMovePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).movePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::pointBoundaryMesh::updateMesh()
|
void Foam::pointBoundaryMesh::updateMesh()
|
||||||
{
|
{
|
||||||
pointPatchList& patches = *this;
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
forAll(patches, patchi)
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
patches[patchi].initUpdateMesh();
|
forAll(*this, patchi)
|
||||||
|
{
|
||||||
|
operator[](patchi).initUpdateMesh(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(patches, patchi)
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
patches[patchi].updateMesh();
|
operator[](patchi).updateMesh(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initUpdateMesh(pBufs);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).updateMesh(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,22 +66,22 @@ protected:
|
|||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry() = 0;
|
virtual void initGeometry(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry() = 0;
|
virtual void calcGeometry(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&) = 0;
|
virtual void initMovePoints(PstreamBuffers&, const pointField&) = 0;
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&) = 0;
|
virtual void movePoints(PstreamBuffers&, const pointField&) = 0;
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh() = 0;
|
virtual void initUpdateMesh(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh() = 0;
|
virtual void updateMesh(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -50,13 +50,13 @@ addToRunTimeSelectionTable
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::cyclicPointPatch::initGeometry()
|
void Foam::cyclicPointPatch::initGeometry(PstreamBuffers&)
|
||||||
{
|
{
|
||||||
transformPairs_.setSize(0);
|
transformPairs_.setSize(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::cyclicPointPatch::calcGeometry()
|
void Foam::cyclicPointPatch::calcGeometry(PstreamBuffers&)
|
||||||
{
|
{
|
||||||
const edgeList& cp = cyclicPolyPatch_.coupledPoints();
|
const edgeList& cp = cyclicPolyPatch_.coupledPoints();
|
||||||
const labelList& mp = cyclicPolyPatch_.meshPoints();
|
const labelList& mp = cyclicPolyPatch_.meshPoints();
|
||||||
@ -128,16 +128,20 @@ void Foam::cyclicPointPatch::calcGeometry()
|
|||||||
}
|
}
|
||||||
else if (pointMap[cp[i][0]] == -1 && pointMap[cp[i][1]] != -1)
|
else if (pointMap[cp[i][0]] == -1 && pointMap[cp[i][1]] != -1)
|
||||||
{
|
{
|
||||||
FatalErrorIn("cyclicPointPatch::calcGeometry() const")
|
FatalErrorIn
|
||||||
<< "Point " << cp[i][0] << "of point-pair " << i
|
(
|
||||||
|
"cyclicPointPatch::calcGeometry(PstreamBuffers&) const"
|
||||||
|
) << "Point " << cp[i][0] << "of point-pair " << i
|
||||||
<< " is a global point but the other point "
|
<< " is a global point but the other point "
|
||||||
<< cp[i][1] << " is not"
|
<< cp[i][1] << " is not"
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
else if (pointMap[cp[i][0]] != -1 && pointMap[cp[i][1]] == -1)
|
else if (pointMap[cp[i][0]] != -1 && pointMap[cp[i][1]] == -1)
|
||||||
{
|
{
|
||||||
FatalErrorIn("cyclicPointPatch::calcGeometry() const")
|
FatalErrorIn
|
||||||
<< "Point " << cp[i][1] << "of point-pair " << i
|
(
|
||||||
|
"cyclicPointPatch::calcGeometry(PstreamBuffers&) const"
|
||||||
|
) << "Point " << cp[i][1] << "of point-pair " << i
|
||||||
<< " is a global point but the other point "
|
<< " is a global point but the other point "
|
||||||
<< cp[i][0] << " is not"
|
<< cp[i][0] << " is not"
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
@ -149,25 +153,25 @@ void Foam::cyclicPointPatch::calcGeometry()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void cyclicPointPatch::initMovePoints(const pointField&)
|
void cyclicPointPatch::initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void cyclicPointPatch::movePoints(const pointField&)
|
void cyclicPointPatch::movePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void cyclicPointPatch::initUpdateMesh()
|
void cyclicPointPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
facePointPatch::initUpdateMesh();
|
facePointPatch::initUpdateMesh(pBufs);
|
||||||
cyclicPointPatch::initGeometry();
|
cyclicPointPatch::initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void cyclicPointPatch::updateMesh()
|
void cyclicPointPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
facePointPatch::updateMesh();
|
facePointPatch::updateMesh(pBufs);
|
||||||
cyclicPointPatch::calcGeometry();
|
cyclicPointPatch::calcGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -74,22 +74,22 @@ class cyclicPointPatch
|
|||||||
edgeList transformPairs_;
|
edgeList transformPairs_;
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -52,7 +52,7 @@ addToRunTimeSelectionTable
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::processorPointPatch::initGeometry()
|
void Foam::processorPointPatch::initGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
// Algorithm:
|
// Algorithm:
|
||||||
// Depending on whether the patch is a master or a slave, get the primitive
|
// Depending on whether the patch is a master or a slave, get the primitive
|
||||||
@ -84,16 +84,16 @@ void Foam::processorPointPatch::initGeometry()
|
|||||||
|
|
||||||
if (Pstream::parRun())
|
if (Pstream::parRun())
|
||||||
{
|
{
|
||||||
initPatchPatchPoints();
|
initPatchPatchPoints(pBufs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPointPatch::calcGeometry()
|
void Foam::processorPointPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
if (Pstream::parRun())
|
if (Pstream::parRun())
|
||||||
{
|
{
|
||||||
calcPatchPatchPoints();
|
calcPatchPatchPoints(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it is not runing parallel or there are no global points
|
// If it is not runing parallel or there are no global points
|
||||||
@ -149,11 +149,11 @@ void Foam::processorPointPatch::calcGeometry()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void processorPointPatch::initPatchPatchPoints()
|
void processorPointPatch::initPatchPatchPoints(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Info<< "processorPointPatch::calcPatchPatchPoints() : "
|
Info<< "processorPointPatch::initPatchPatchPoints(PstreamBuffers&) : "
|
||||||
<< "constructing patch-patch points"
|
<< "constructing patch-patch points"
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
@ -229,7 +229,7 @@ void processorPointPatch::initPatchPatchPoints()
|
|||||||
|
|
||||||
// Send the patchPatchPoints to the neighbouring processor
|
// Send the patchPatchPoints to the neighbouring processor
|
||||||
|
|
||||||
OPstream toNeighbProc(Pstream::blocking, neighbProcNo());
|
UOPstream toNeighbProc(neighbProcNo(), pBufs);
|
||||||
|
|
||||||
toNeighbProc
|
toNeighbProc
|
||||||
<< ppmp.size() // number of points for checking
|
<< ppmp.size() // number of points for checking
|
||||||
@ -238,17 +238,17 @@ void processorPointPatch::initPatchPatchPoints()
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Info<< "processorPointPatch::calcPatchPatchPoints() : "
|
Info<< "processorPointPatch::initPatchPatchPoints() : "
|
||||||
<< "constructed patch-patch points"
|
<< "constructed patch-patch points"
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPointPatch::calcPatchPatchPoints()
|
void Foam::processorPointPatch::calcPatchPatchPoints(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
// Get the patchPatchPoints from the neighbouring processor
|
// Get the patchPatchPoints from the neighbouring processor
|
||||||
IPstream fromNeighbProc(Pstream::blocking, neighbProcNo());
|
UIPstream fromNeighbProc(neighbProcNo(), pBufs);
|
||||||
|
|
||||||
label nbrNPoints(readLabel(fromNeighbProc));
|
label nbrNPoints(readLabel(fromNeighbProc));
|
||||||
labelListList patchPatchPoints(fromNeighbProc);
|
labelListList patchPatchPoints(fromNeighbProc);
|
||||||
@ -265,7 +265,7 @@ void Foam::processorPointPatch::calcPatchPatchPoints()
|
|||||||
// separate.
|
// separate.
|
||||||
if (nbrNPoints != ppmp.size())
|
if (nbrNPoints != ppmp.size())
|
||||||
{
|
{
|
||||||
WarningIn("processorPointPatch::calcPatchPatchPoints()")
|
WarningIn("processorPointPatch::calcPatchPatchPoints(PstreamBuffers&)")
|
||||||
<< "Processor patch " << name()
|
<< "Processor patch " << name()
|
||||||
<< " has " << ppmp.size() << " points; coupled patch has "
|
<< " has " << ppmp.size() << " points; coupled patch has "
|
||||||
<< nbrNPoints << " points." << endl
|
<< nbrNPoints << " points." << endl
|
||||||
@ -352,25 +352,25 @@ void Foam::processorPointPatch::calcPatchPatchPoints()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void processorPointPatch::initMovePoints(const pointField&)
|
void processorPointPatch::initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void processorPointPatch::movePoints(const pointField&)
|
void processorPointPatch::movePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void processorPointPatch::initUpdateMesh()
|
void processorPointPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
facePointPatch::initUpdateMesh();
|
facePointPatch::initUpdateMesh(pBufs);
|
||||||
processorPointPatch::initGeometry();
|
processorPointPatch::initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void processorPointPatch::updateMesh()
|
void processorPointPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
facePointPatch::updateMesh();
|
facePointPatch::updateMesh(pBufs);
|
||||||
processorPointPatch::calcGeometry();
|
processorPointPatch::calcGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -68,30 +68,30 @@ class processorPointPatch
|
|||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the points on this patch which are should also be
|
//- Initialise the points on this patch which are should also be
|
||||||
// on a neighbouring patch but are not part of faces of that patch
|
// on a neighbouring patch but are not part of faces of that patch
|
||||||
void initPatchPatchPoints();
|
void initPatchPatchPoints(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the points on this patch which are should also be
|
//- Calculate the points on this patch which are should also be
|
||||||
// on a neighbouring patch but are not part of faces of that patch
|
// on a neighbouring patch but are not part of faces of that patch
|
||||||
void calcPatchPatchPoints();
|
void calcPatchPatchPoints(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
//- Disallow default construct as copy
|
//- Disallow default construct as copy
|
||||||
|
|||||||
@ -86,7 +86,7 @@ protected:
|
|||||||
// Construction of demand-driven data
|
// Construction of demand-driven data
|
||||||
|
|
||||||
//- Calculate mesh points
|
//- Calculate mesh points
|
||||||
virtual void calcGeometry() = 0;
|
virtual void calcGeometry(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -67,27 +67,27 @@ class globalPointPatch
|
|||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry()
|
virtual void initGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry()
|
virtual void calcGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&)
|
virtual void initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&)
|
virtual void movePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh()
|
virtual void initUpdateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh()
|
virtual void updateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
|
||||||
|
|
||||||
void facePointPatch::initGeometry()
|
void facePointPatch::initGeometry(PstreamBuffers&)
|
||||||
{
|
{
|
||||||
meshPoints_.setSize(0);
|
meshPoints_.setSize(0);
|
||||||
localPoints_.setSize(0);
|
localPoints_.setSize(0);
|
||||||
@ -59,25 +59,25 @@ void facePointPatch::initGeometry()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void facePointPatch::calcGeometry()
|
void facePointPatch::calcGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void facePointPatch::initMovePoints(const pointField&)
|
void facePointPatch::initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void facePointPatch::movePoints(const pointField&)
|
void facePointPatch::movePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void facePointPatch::initUpdateMesh()
|
void facePointPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
facePointPatch::initGeometry();
|
facePointPatch::initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void facePointPatch::updateMesh()
|
void facePointPatch::updateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -76,22 +76,22 @@ protected:
|
|||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@ -49,6 +49,7 @@ namespace Foam
|
|||||||
|
|
||||||
class pointBoundaryMesh;
|
class pointBoundaryMesh;
|
||||||
class pointConstraint;
|
class pointConstraint;
|
||||||
|
class PstreamBuffers;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class pointPatch Declaration
|
Class pointPatch Declaration
|
||||||
@ -79,27 +80,27 @@ protected:
|
|||||||
friend class pointBoundaryMesh;
|
friend class pointBoundaryMesh;
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry()
|
virtual void initGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry()
|
virtual void calcGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&)
|
virtual void initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&)
|
virtual void movePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh()
|
virtual void initUpdateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh()
|
virtual void updateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,9 @@ License
|
|||||||
#include "primitiveMesh.H"
|
#include "primitiveMesh.H"
|
||||||
#include "processorPolyPatch.H"
|
#include "processorPolyPatch.H"
|
||||||
#include "stringListOps.H"
|
#include "stringListOps.H"
|
||||||
|
#include "PstreamBuffers.H"
|
||||||
|
#include "lduSchedule.H"
|
||||||
|
#include "globalMeshData.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -143,15 +146,47 @@ void Foam::polyBoundaryMesh::clearAddressing()
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::polyBoundaryMesh::calcGeometry()
|
void Foam::polyBoundaryMesh::calcGeometry()
|
||||||
|
{
|
||||||
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, patchi)
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
operator[](patchi).initGeometry();
|
operator[](patchi).initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
forAll(*this, patchi)
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
operator[](patchi).calcGeometry();
|
operator[](patchi).calcGeometry(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initGeometry(pBufs);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).calcGeometry(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,16 +608,46 @@ bool Foam::polyBoundaryMesh::checkDefinition(const bool report) const
|
|||||||
|
|
||||||
void Foam::polyBoundaryMesh::movePoints(const pointField& p)
|
void Foam::polyBoundaryMesh::movePoints(const pointField& p)
|
||||||
{
|
{
|
||||||
polyPatchList& patches = *this;
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
forAll(patches, patchi)
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
patches[patchi].initMovePoints(p);
|
forAll(*this, patchi)
|
||||||
|
{
|
||||||
|
operator[](patchi).initMovePoints(pBufs, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(patches, patchi)
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
patches[patchi].movePoints(p);
|
operator[](patchi).movePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initMovePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).movePoints(pBufs, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -591,16 +656,46 @@ void Foam::polyBoundaryMesh::updateMesh()
|
|||||||
{
|
{
|
||||||
deleteDemandDrivenData(neighbourEdgesPtr_);
|
deleteDemandDrivenData(neighbourEdgesPtr_);
|
||||||
|
|
||||||
polyPatchList& patches = *this;
|
PstreamBuffers pBufs(Pstream::defaultCommsType);
|
||||||
|
|
||||||
forAll(patches, patchi)
|
if
|
||||||
|
(
|
||||||
|
Pstream::defaultCommsType == Pstream::blocking
|
||||||
|
|| Pstream::defaultCommsType == Pstream::nonBlocking
|
||||||
|
)
|
||||||
{
|
{
|
||||||
patches[patchi].initUpdateMesh();
|
forAll(*this, patchi)
|
||||||
|
{
|
||||||
|
operator[](patchi).initUpdateMesh(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(patches, patchi)
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(*this, patchi)
|
||||||
{
|
{
|
||||||
patches[patchi].updateMesh();
|
operator[](patchi).updateMesh(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Pstream::defaultCommsType == Pstream::scheduled)
|
||||||
|
{
|
||||||
|
const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
|
||||||
|
|
||||||
|
// Dummy.
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
|
forAll(patchSchedule, patchEvali)
|
||||||
|
{
|
||||||
|
label patchi = patchSchedule[patchEvali].patch;
|
||||||
|
|
||||||
|
if (patchSchedule[patchEvali].init)
|
||||||
|
{
|
||||||
|
operator[](patchi).initUpdateMesh(pBufs);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator[](patchi).updateMesh(pBufs);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,8 +50,6 @@ class polyMesh;
|
|||||||
|
|
||||||
// Forward declaration of friend functions and operators
|
// Forward declaration of friend functions and operators
|
||||||
|
|
||||||
class polyBoundaryMesh;
|
|
||||||
|
|
||||||
Ostream& operator<<(Ostream&, const polyBoundaryMesh&);
|
Ostream& operator<<(Ostream&, const polyBoundaryMesh&);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -90,22 +90,22 @@ protected:
|
|||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry() = 0;
|
virtual void initGeometry(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry() = 0;
|
virtual void calcGeometry(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&) = 0;
|
virtual void initMovePoints(PstreamBuffers&, const pointField&) = 0;
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&) = 0;
|
virtual void movePoints(PstreamBuffers&, const pointField&) = 0;
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh() = 0;
|
virtual void initUpdateMesh(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh() = 0;
|
virtual void updateMesh(PstreamBuffers&) = 0;
|
||||||
|
|
||||||
|
|
||||||
//- Write point in OBJ format
|
//- Write point in OBJ format
|
||||||
@ -283,7 +283,11 @@ public:
|
|||||||
|
|
||||||
//- Initialize ordering for primitivePatch. Does not
|
//- Initialize ordering for primitivePatch. Does not
|
||||||
// refer to *this (except for name() and type() etc.)
|
// refer to *this (except for name() and type() etc.)
|
||||||
virtual void initOrder(const primitivePatch&) const = 0;
|
virtual void initOrder
|
||||||
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
|
const primitivePatch&
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Return new ordering for primitivePatch.
|
//- Return new ordering for primitivePatch.
|
||||||
// Ordering is -faceMap: for every face
|
// Ordering is -faceMap: for every face
|
||||||
@ -292,6 +296,7 @@ public:
|
|||||||
// (faceMap is identity, rotation is 0), true otherwise.
|
// (faceMap is identity, rotation is 0), true otherwise.
|
||||||
virtual bool order
|
virtual bool order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
const primitivePatch&,
|
const primitivePatch&,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
|
|||||||
@ -516,7 +516,8 @@ void Foam::cyclicPolyPatch::getCentresAndAnchors
|
|||||||
// if (debug)
|
// if (debug)
|
||||||
// {
|
// {
|
||||||
// Pout<< "cyclicPolyPatch::getCentresAndAnchors :"
|
// Pout<< "cyclicPolyPatch::getCentresAndAnchors :"
|
||||||
// << "Specified translation : " << separationVector_ << endl;
|
// << "Specified translation : " << separationVector_
|
||||||
|
// << endl;
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// half0Ctrs += separationVector_;
|
// half0Ctrs += separationVector_;
|
||||||
@ -858,36 +859,44 @@ Foam::cyclicPolyPatch::~cyclicPolyPatch()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::initGeometry()
|
void Foam::cyclicPolyPatch::initGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::initGeometry();
|
polyPatch::initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::calcGeometry()
|
void Foam::cyclicPolyPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::calcGeometry();
|
polyPatch::calcGeometry(pBufs);
|
||||||
calcTransforms();
|
calcTransforms();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::initMovePoints(const pointField& p)
|
void Foam::cyclicPolyPatch::initMovePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
polyPatch::initMovePoints(p);
|
polyPatch::initMovePoints(pBufs, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::movePoints(const pointField& p)
|
void Foam::cyclicPolyPatch::movePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
polyPatch::movePoints(p);
|
polyPatch::movePoints(pBufs, p);
|
||||||
calcTransforms();
|
calcTransforms();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::initUpdateMesh()
|
void Foam::cyclicPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::initUpdateMesh();
|
polyPatch::initUpdateMesh(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::updateMesh()
|
void Foam::cyclicPolyPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::updateMesh();
|
polyPatch::updateMesh(pBufs);
|
||||||
deleteDemandDrivenData(coupledPointsPtr_);
|
deleteDemandDrivenData(coupledPointsPtr_);
|
||||||
deleteDemandDrivenData(coupledEdgesPtr_);
|
deleteDemandDrivenData(coupledEdgesPtr_);
|
||||||
}
|
}
|
||||||
@ -1105,7 +1114,11 @@ const Foam::edgeList& Foam::cyclicPolyPatch::coupledEdges() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::cyclicPolyPatch::initOrder(const primitivePatch& pp) const
|
void Foam::cyclicPolyPatch::initOrder
|
||||||
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
|
const primitivePatch& pp
|
||||||
|
) const
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -1115,6 +1128,7 @@ void Foam::cyclicPolyPatch::initOrder(const primitivePatch& pp) const
|
|||||||
// is identity, rotation is 0)
|
// is identity, rotation is 0)
|
||||||
bool Foam::cyclicPolyPatch::order
|
bool Foam::cyclicPolyPatch::order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
const primitivePatch& pp,
|
const primitivePatch& pp,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
@ -1300,7 +1314,8 @@ bool Foam::cyclicPolyPatch::order
|
|||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
// Recalculate untransformed face centres
|
// Recalculate untransformed face centres
|
||||||
//pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
|
//pointField rawHalf0Ctrs =
|
||||||
|
// calcFaceCentres(half0Faces, pp.points());
|
||||||
label vertI = 0;
|
label vertI = 0;
|
||||||
|
|
||||||
forAll(half1Ctrs, i)
|
forAll(half1Ctrs, i)
|
||||||
@ -1413,7 +1428,8 @@ bool Foam::cyclicPolyPatch::order
|
|||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
// Recalculate untransformed face centres
|
// Recalculate untransformed face centres
|
||||||
//pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
|
//pointField rawHalf0Ctrs =
|
||||||
|
// calcFaceCentres(half0Faces, pp.points());
|
||||||
label vertI = 0;
|
label vertI = 0;
|
||||||
|
|
||||||
forAll(half1Ctrs, i)
|
forAll(half1Ctrs, i)
|
||||||
@ -1499,7 +1515,8 @@ bool Foam::cyclicPolyPatch::order
|
|||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
// Recalculate untransformed face centres
|
// Recalculate untransformed face centres
|
||||||
//pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
|
//pointField rawHalf0Ctrs =
|
||||||
|
// calcFaceCentres(half0Faces, pp.points());
|
||||||
label vertI = 0;
|
label vertI = 0;
|
||||||
|
|
||||||
forAll(half1Ctrs, i)
|
forAll(half1Ctrs, i)
|
||||||
|
|||||||
@ -176,22 +176,22 @@ protected:
|
|||||||
// Protected Member functions
|
// Protected Member functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -391,7 +391,7 @@ public:
|
|||||||
|
|
||||||
//- Initialize ordering for primitivePatch. Does not
|
//- Initialize ordering for primitivePatch. Does not
|
||||||
// refer to *this (except for name() and type() etc.)
|
// refer to *this (except for name() and type() etc.)
|
||||||
virtual void initOrder(const primitivePatch&) const;
|
virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
|
||||||
|
|
||||||
//- Return new ordering for primitivePatch.
|
//- Return new ordering for primitivePatch.
|
||||||
// Ordering is -faceMap: for every face
|
// Ordering is -faceMap: for every face
|
||||||
@ -400,6 +400,7 @@ public:
|
|||||||
// (faceMap is identity, rotation is 0), true otherwise.
|
// (faceMap is identity, rotation is 0), true otherwise.
|
||||||
virtual bool order
|
virtual bool order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
const primitivePatch&,
|
const primitivePatch&,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
|
|||||||
@ -34,6 +34,7 @@ License
|
|||||||
#include "polyMesh.H"
|
#include "polyMesh.H"
|
||||||
#include "Time.H"
|
#include "Time.H"
|
||||||
#include "transformList.H"
|
#include "transformList.H"
|
||||||
|
#include "PstreamBuffers.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -155,16 +156,11 @@ Foam::processorPolyPatch::~processorPolyPatch()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::processorPolyPatch::initGeometry()
|
void Foam::processorPolyPatch::initGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
if (Pstream::parRun())
|
if (Pstream::parRun())
|
||||||
{
|
{
|
||||||
OPstream toNeighbProc
|
UOPstream toNeighbProc(neighbProcNo(), pBufs);
|
||||||
(
|
|
||||||
Pstream::blocking,
|
|
||||||
neighbProcNo(),
|
|
||||||
3*(sizeof(label) + size()*sizeof(vector) + sizeof(scalar))
|
|
||||||
);
|
|
||||||
|
|
||||||
toNeighbProc
|
toNeighbProc
|
||||||
<< faceCentres()
|
<< faceCentres()
|
||||||
@ -174,17 +170,13 @@ void Foam::processorPolyPatch::initGeometry()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::calcGeometry()
|
void Foam::processorPolyPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
if (Pstream::parRun())
|
if (Pstream::parRun())
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
IPstream fromNeighbProc
|
UIPstream fromNeighbProc(neighbProcNo(), pBufs);
|
||||||
(
|
|
||||||
Pstream::blocking,
|
|
||||||
neighbProcNo(),
|
|
||||||
3*(sizeof(label) + size()*sizeof(vector) + sizeof(scalar))
|
|
||||||
);
|
|
||||||
fromNeighbProc
|
fromNeighbProc
|
||||||
>> neighbFaceCentres_
|
>> neighbFaceCentres_
|
||||||
>> neighbFaceAreas_
|
>> neighbFaceAreas_
|
||||||
@ -251,22 +243,30 @@ void Foam::processorPolyPatch::calcGeometry()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::initMovePoints(const pointField& p)
|
void Foam::processorPolyPatch::initMovePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
polyPatch::movePoints(p);
|
polyPatch::movePoints(pBufs, p);
|
||||||
processorPolyPatch::initGeometry();
|
processorPolyPatch::initGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::movePoints(const pointField&)
|
void Foam::processorPolyPatch::movePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField&
|
||||||
|
)
|
||||||
{
|
{
|
||||||
processorPolyPatch::calcGeometry();
|
processorPolyPatch::calcGeometry(pBufs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::initUpdateMesh()
|
void Foam::processorPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::initUpdateMesh();
|
polyPatch::initUpdateMesh(pBufs);
|
||||||
|
|
||||||
deleteDemandDrivenData(neighbPointsPtr_);
|
deleteDemandDrivenData(neighbPointsPtr_);
|
||||||
deleteDemandDrivenData(neighbEdgesPtr_);
|
deleteDemandDrivenData(neighbEdgesPtr_);
|
||||||
@ -303,14 +303,7 @@ void Foam::processorPolyPatch::initUpdateMesh()
|
|||||||
edgeIndex[patchEdgeI] = findIndex(fEdges, patchEdgeI);
|
edgeIndex[patchEdgeI] = findIndex(fEdges, patchEdgeI);
|
||||||
}
|
}
|
||||||
|
|
||||||
OPstream toNeighbProc
|
UOPstream toNeighbProc(neighbProcNo(), pBufs);
|
||||||
(
|
|
||||||
Pstream::blocking,
|
|
||||||
neighbProcNo(),
|
|
||||||
8*sizeof(label) // four headers of labelList
|
|
||||||
+ 2*nPoints()*sizeof(label) // two point-based labellists
|
|
||||||
+ 2*nEdges()*sizeof(label) // two edge-based labelLists
|
|
||||||
);
|
|
||||||
|
|
||||||
toNeighbProc
|
toNeighbProc
|
||||||
<< pointFace
|
<< pointFace
|
||||||
@ -321,10 +314,10 @@ void Foam::processorPolyPatch::initUpdateMesh()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::updateMesh()
|
void Foam::processorPolyPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
// For completeness
|
// For completeness
|
||||||
polyPatch::updateMesh();
|
polyPatch::updateMesh(pBufs);
|
||||||
|
|
||||||
if (Pstream::parRun())
|
if (Pstream::parRun())
|
||||||
{
|
{
|
||||||
@ -336,7 +329,7 @@ void Foam::processorPolyPatch::updateMesh()
|
|||||||
{
|
{
|
||||||
// Note cannot predict exact size since opposite nPoints might
|
// Note cannot predict exact size since opposite nPoints might
|
||||||
// be different from one over here.
|
// be different from one over here.
|
||||||
IPstream fromNeighbProc(Pstream::blocking, neighbProcNo());
|
UIPstream fromNeighbProc(neighbProcNo(), pBufs);
|
||||||
|
|
||||||
fromNeighbProc
|
fromNeighbProc
|
||||||
>> nbrPointFace
|
>> nbrPointFace
|
||||||
@ -446,7 +439,11 @@ const Foam::labelList& Foam::processorPolyPatch::neighbEdges() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
|
void Foam::processorPolyPatch::initOrder
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const primitivePatch& pp
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
if (!Pstream::parRun())
|
if (!Pstream::parRun())
|
||||||
{
|
{
|
||||||
@ -491,7 +488,7 @@ void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
|
|||||||
pointField anchors(getAnchorPoints(pp, pp.points()));
|
pointField anchors(getAnchorPoints(pp, pp.points()));
|
||||||
|
|
||||||
// Now send all info over to the neighbour
|
// Now send all info over to the neighbour
|
||||||
OPstream toNeighbour(Pstream::blocking, neighbProcNo());
|
UOPstream toNeighbour(neighbProcNo(), pBufs);
|
||||||
toNeighbour << ctrs << anchors;
|
toNeighbour << ctrs << anchors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -503,6 +500,7 @@ void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
|
|||||||
// is identity, rotation is 0)
|
// is identity, rotation is 0)
|
||||||
bool Foam::processorPolyPatch::order
|
bool Foam::processorPolyPatch::order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
const primitivePatch& pp,
|
const primitivePatch& pp,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
@ -539,7 +537,7 @@ bool Foam::processorPolyPatch::order
|
|||||||
|
|
||||||
// Receive data from neighbour
|
// Receive data from neighbour
|
||||||
{
|
{
|
||||||
IPstream fromNeighbour(Pstream::blocking, neighbProcNo());
|
UIPstream fromNeighbour(neighbProcNo(), pBufs);
|
||||||
fromNeighbour >> masterCtrs >> masterAnchors;
|
fromNeighbour >> masterCtrs >> masterAnchors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,11 +28,9 @@ Class
|
|||||||
Description
|
Description
|
||||||
Neighbour processor patch.
|
Neighbour processor patch.
|
||||||
|
|
||||||
Note: morph patch face ordering comes geometric or topological.
|
Note: morph patch face ordering tries to do a geometric ordering.
|
||||||
Geometric: no cyclics allowed (assumes faces coincident)
|
(assumes faces coincident) Hence will have problems when cyclics
|
||||||
Topological: needs unmodified faces on both sides to correspond. Also
|
are present.
|
||||||
needs at least one per connected patch area (so all patch faces can be
|
|
||||||
visited from an unmodified face)
|
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
processorPolyPatch.C
|
processorPolyPatch.C
|
||||||
@ -97,22 +95,22 @@ protected:
|
|||||||
// Protected Member functions
|
// Protected Member functions
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
void initGeometry();
|
void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
void calcGeometry();
|
void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
void initMovePoints(const pointField&);
|
void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
void movePoints(const pointField&);
|
void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -283,7 +281,7 @@ public:
|
|||||||
|
|
||||||
//- Initialize ordering for primitivePatch. Does not
|
//- Initialize ordering for primitivePatch. Does not
|
||||||
// refer to *this (except for name() and type() etc.)
|
// refer to *this (except for name() and type() etc.)
|
||||||
virtual void initOrder(const primitivePatch&) const;
|
virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
|
||||||
|
|
||||||
//- Return new ordering for primitivePatch.
|
//- Return new ordering for primitivePatch.
|
||||||
// Ordering is -faceMap: for every face
|
// Ordering is -faceMap: for every face
|
||||||
@ -292,6 +290,7 @@ public:
|
|||||||
// (faceMap is identity, rotation is 0), true otherwise.
|
// (faceMap is identity, rotation is 0), true otherwise.
|
||||||
virtual bool order
|
virtual bool order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
const primitivePatch&,
|
const primitivePatch&,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
|
|||||||
@ -55,12 +55,12 @@ namespace Foam
|
|||||||
|
|
||||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::polyPatch::movePoints(const pointField& p)
|
void Foam::polyPatch::movePoints(PstreamBuffers&, const pointField& p)
|
||||||
{
|
{
|
||||||
primitivePatch::movePoints(p);
|
primitivePatch::movePoints(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::polyPatch::updateMesh()
|
void Foam::polyPatch::updateMesh(PstreamBuffers&)
|
||||||
{
|
{
|
||||||
clearAddressing();
|
clearAddressing();
|
||||||
}
|
}
|
||||||
@ -334,12 +334,13 @@ void Foam::polyPatch::write(Ostream& os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::polyPatch::initOrder(const primitivePatch&) const
|
void Foam::polyPatch::initOrder(PstreamBuffers&, const primitivePatch&) const
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
bool Foam::polyPatch::order
|
bool Foam::polyPatch::order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
const primitivePatch&,
|
const primitivePatch&,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
|
|||||||
@ -56,6 +56,7 @@ namespace Foam
|
|||||||
|
|
||||||
class polyBoundaryMesh;
|
class polyBoundaryMesh;
|
||||||
class polyPatch;
|
class polyPatch;
|
||||||
|
class PstreamBuffers;
|
||||||
|
|
||||||
Ostream& operator<<(Ostream&, const polyPatch&);
|
Ostream& operator<<(Ostream&, const polyPatch&);
|
||||||
|
|
||||||
@ -101,26 +102,26 @@ protected:
|
|||||||
friend class polyBoundaryMesh;
|
friend class polyBoundaryMesh;
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry()
|
virtual void initGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry()
|
virtual void calcGeometry(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&)
|
virtual void initMovePoints(PstreamBuffers&, const pointField&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField& p);
|
virtual void movePoints(PstreamBuffers&, const pointField& p);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh()
|
virtual void initUpdateMesh(PstreamBuffers&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -358,7 +359,7 @@ public:
|
|||||||
|
|
||||||
//- Initialize ordering for primitivePatch. Does not
|
//- Initialize ordering for primitivePatch. Does not
|
||||||
// refer to *this (except for name() and type() etc.)
|
// refer to *this (except for name() and type() etc.)
|
||||||
virtual void initOrder(const primitivePatch&) const;
|
virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
|
||||||
|
|
||||||
//- Return new ordering for primitivePatch.
|
//- Return new ordering for primitivePatch.
|
||||||
// Ordering is -faceMap: for every face
|
// Ordering is -faceMap: for every face
|
||||||
@ -367,6 +368,7 @@ public:
|
|||||||
// (faceMap is identity, rotation is 0), true otherwise.
|
// (faceMap is identity, rotation is 0), true otherwise.
|
||||||
virtual bool order
|
virtual bool order
|
||||||
(
|
(
|
||||||
|
PstreamBuffers&,
|
||||||
const primitivePatch&,
|
const primitivePatch&,
|
||||||
labelList& faceMap,
|
labelList& faceMap,
|
||||||
labelList& rotation
|
labelList& rotation
|
||||||
|
|||||||
@ -1844,6 +1844,8 @@ void Foam::polyTopoChange::reorderCoupledFaces
|
|||||||
// Rotation on new faces.
|
// Rotation on new faces.
|
||||||
labelList rotation(faces_.size(), 0);
|
labelList rotation(faces_.size(), 0);
|
||||||
|
|
||||||
|
PstreamBuffers pBufs(Pstream::nonBlocking);
|
||||||
|
|
||||||
// Send ordering
|
// Send ordering
|
||||||
forAll(boundary, patchI)
|
forAll(boundary, patchI)
|
||||||
{
|
{
|
||||||
@ -1851,6 +1853,7 @@ void Foam::polyTopoChange::reorderCoupledFaces
|
|||||||
{
|
{
|
||||||
boundary[patchI].initOrder
|
boundary[patchI].initOrder
|
||||||
(
|
(
|
||||||
|
pBufs,
|
||||||
primitivePatch
|
primitivePatch
|
||||||
(
|
(
|
||||||
SubList<face>
|
SubList<face>
|
||||||
@ -1865,6 +1868,8 @@ void Foam::polyTopoChange::reorderCoupledFaces
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pBufs.finishedSends();
|
||||||
|
|
||||||
// Receive and calculate ordering
|
// Receive and calculate ordering
|
||||||
|
|
||||||
bool anyChanged = false;
|
bool anyChanged = false;
|
||||||
@ -1878,6 +1883,7 @@ void Foam::polyTopoChange::reorderCoupledFaces
|
|||||||
|
|
||||||
bool changed = boundary[patchI].order
|
bool changed = boundary[patchI].order
|
||||||
(
|
(
|
||||||
|
pBufs,
|
||||||
primitivePatch
|
primitivePatch
|
||||||
(
|
(
|
||||||
SubList<face>
|
SubList<face>
|
||||||
|
|||||||
@ -145,44 +145,49 @@ Foam::directMappedPolyPatch::~directMappedPolyPatch()
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
void Foam::directMappedPolyPatch::initGeometry()
|
void Foam::directMappedPolyPatch::initGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::initGeometry();
|
polyPatch::initGeometry(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
void Foam::directMappedPolyPatch::calcGeometry()
|
void Foam::directMappedPolyPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::calcGeometry();
|
polyPatch::calcGeometry(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
void Foam::directMappedPolyPatch::initMovePoints(const pointField& p)
|
void Foam::directMappedPolyPatch::initMovePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
polyPatch::initMovePoints(p);
|
polyPatch::initMovePoints(pBufs, p);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
void Foam::directMappedPolyPatch::movePoints(const pointField& p)
|
void Foam::directMappedPolyPatch::movePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
polyPatch::movePoints(p);
|
polyPatch::movePoints(pBufs, p);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
void Foam::directMappedPolyPatch::initUpdateMesh()
|
void Foam::directMappedPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::initUpdateMesh();
|
polyPatch::initUpdateMesh(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
void Foam::directMappedPolyPatch::updateMesh()
|
void Foam::directMappedPolyPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
polyPatch::updateMesh();
|
polyPatch::updateMesh(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -65,22 +65,22 @@ class directMappedPolyPatch
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -150,44 +150,49 @@ Foam::directMappedWallPolyPatch::~directMappedWallPolyPatch()
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
void Foam::directMappedWallPolyPatch::initGeometry()
|
void Foam::directMappedWallPolyPatch::initGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
wallPolyPatch::initGeometry();
|
wallPolyPatch::initGeometry(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
void Foam::directMappedWallPolyPatch::calcGeometry()
|
void Foam::directMappedWallPolyPatch::calcGeometry(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
wallPolyPatch::calcGeometry();
|
wallPolyPatch::calcGeometry(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
void Foam::directMappedWallPolyPatch::initMovePoints(const pointField& p)
|
void Foam::directMappedWallPolyPatch::initMovePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
wallPolyPatch::initMovePoints(p);
|
wallPolyPatch::initMovePoints(pBufs, p);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
void Foam::directMappedWallPolyPatch::movePoints(const pointField& p)
|
void Foam::directMappedWallPolyPatch::movePoints
|
||||||
|
(
|
||||||
|
PstreamBuffers& pBufs,
|
||||||
|
const pointField& p
|
||||||
|
)
|
||||||
{
|
{
|
||||||
wallPolyPatch::movePoints(p);
|
wallPolyPatch::movePoints(pBufs, p);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
void Foam::directMappedWallPolyPatch::initUpdateMesh()
|
void Foam::directMappedWallPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
wallPolyPatch::initUpdateMesh();
|
wallPolyPatch::initUpdateMesh(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
void Foam::directMappedWallPolyPatch::updateMesh()
|
void Foam::directMappedWallPolyPatch::updateMesh(PstreamBuffers& pBufs)
|
||||||
{
|
{
|
||||||
wallPolyPatch::updateMesh();
|
wallPolyPatch::updateMesh(pBufs);
|
||||||
directMappedPatchBase::clearOut();
|
directMappedPatchBase::clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -65,22 +65,22 @@ class directMappedWallPolyPatch
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
//- Initialise the calculation of the patch geometry
|
//- Initialise the calculation of the patch geometry
|
||||||
virtual void initGeometry();
|
virtual void initGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Calculate the patch geometry
|
//- Calculate the patch geometry
|
||||||
virtual void calcGeometry();
|
virtual void calcGeometry(PstreamBuffers&);
|
||||||
|
|
||||||
//- Initialise the patches for moving points
|
//- Initialise the patches for moving points
|
||||||
virtual void initMovePoints(const pointField&);
|
virtual void initMovePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Correct patches after moving points
|
//- Correct patches after moving points
|
||||||
virtual void movePoints(const pointField&);
|
virtual void movePoints(PstreamBuffers&, const pointField&);
|
||||||
|
|
||||||
//- Initialise the update of the patch topology
|
//- Initialise the update of the patch topology
|
||||||
virtual void initUpdateMesh();
|
virtual void initUpdateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
//- Update of the patch topology
|
//- Update of the patch topology
|
||||||
virtual void updateMesh();
|
virtual void updateMesh(PstreamBuffers&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
Reference in New Issue
Block a user