mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
parallel fix
This commit is contained in:
@ -1373,7 +1373,17 @@ Foam::isoSurface::isoSurface
|
||||
{
|
||||
const polyPatch& pp = patches[patchI];
|
||||
|
||||
if (!pp.coupled())
|
||||
if (pp.coupled())
|
||||
{
|
||||
label faceI = pp.start();
|
||||
|
||||
forAll(pp, i)
|
||||
{
|
||||
boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI;
|
||||
faceI++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
label faceI = pp.start();
|
||||
|
||||
@ -1381,12 +1391,13 @@ Foam::isoSurface::isoSurface
|
||||
{
|
||||
boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI;
|
||||
|
||||
const face& f = mesh_.faces()[faceI++];
|
||||
const face& f = mesh_.faces()[faceI];
|
||||
|
||||
forAll(f, fp)
|
||||
{
|
||||
isBoundaryPoint.set(f[fp], 1);
|
||||
}
|
||||
faceI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,8 @@ void Foam::sampledIsoSurface::getIsoFields() const
|
||||
{
|
||||
const fvMesh& fvm = static_cast<const fvMesh&>(mesh());
|
||||
|
||||
word pointFldName = "volPointInterpolate(" + isoField_ + ')';
|
||||
|
||||
// Get volField
|
||||
// ~~~~~~~~~~~~
|
||||
|
||||
@ -62,6 +64,19 @@ void Foam::sampledIsoSurface::getIsoFields() const
|
||||
{
|
||||
// Bit of a hack. Read field and store.
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : checking "
|
||||
<< isoField_ << " for same time " << fvm.time().timeName()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if
|
||||
(
|
||||
!storedVolFieldPtr_.valid()
|
||||
|| (fvm.time().timeName() != storedVolFieldPtr_().instance())
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : reading "
|
||||
@ -86,28 +101,8 @@ void Foam::sampledIsoSurface::getIsoFields() const
|
||||
)
|
||||
);
|
||||
volFieldPtr_ = storedVolFieldPtr_.operator->();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Get pointField
|
||||
// ~~~~~~~~~~~~~~
|
||||
|
||||
word pointFldName = "volPointInterpolate(" + isoField_ + ')';
|
||||
|
||||
if (fvm.foundObject<pointScalarField>(pointFldName))
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : lookup "
|
||||
<< pointFldName << endl;
|
||||
}
|
||||
storedPointFieldPtr_.clear();
|
||||
pointFieldPtr_ = &fvm.lookupObject<pointScalarField>(pointFldName);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not in registry. Interpolate.
|
||||
// Interpolate to get pointField
|
||||
|
||||
if (debug)
|
||||
{
|
||||
@ -121,6 +116,52 @@ void Foam::sampledIsoSurface::getIsoFields() const
|
||||
);
|
||||
pointFieldPtr_ = storedPointFieldPtr_.operator->();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Get pointField
|
||||
// ~~~~~~~~~~~~~~
|
||||
|
||||
if (fvm.foundObject<pointScalarField>(pointFldName))
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : lookup "
|
||||
<< pointFldName << endl;
|
||||
}
|
||||
pointFieldPtr_ = &fvm.lookupObject<pointScalarField>(pointFldName);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not in registry. Interpolate.
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : checking interpolate "
|
||||
<< isoField_ << " for same time " << fvm.time().timeName()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if
|
||||
(
|
||||
!storedPointFieldPtr_.valid()
|
||||
|| (fvm.time().timeName() != storedPointFieldPtr_().instance())
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "sampledIsoSurface::getIsoField() : interpolating "
|
||||
<< pointFldName << endl;
|
||||
}
|
||||
|
||||
storedPointFieldPtr_.reset
|
||||
(
|
||||
volPointInterpolation::New(fvm).interpolate(*volFieldPtr_).ptr()
|
||||
);
|
||||
pointFieldPtr_ = storedPointFieldPtr_.operator->();
|
||||
}
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user