parallel fix

This commit is contained in:
mattijs
2008-12-09 15:59:00 +00:00
parent f5b23d5065
commit 8f48c008d7
2 changed files with 79 additions and 27 deletions

View File

@ -1373,7 +1373,17 @@ Foam::isoSurface::isoSurface
{ {
const polyPatch& pp = patches[patchI]; 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(); label faceI = pp.start();
@ -1381,12 +1391,13 @@ Foam::isoSurface::isoSurface
{ {
boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI; boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI;
const face& f = mesh_.faces()[faceI++]; const face& f = mesh_.faces()[faceI];
forAll(f, fp) forAll(f, fp)
{ {
isBoundaryPoint.set(f[fp], 1); isBoundaryPoint.set(f[fp], 1);
} }
faceI++;
} }
} }
} }

View File

@ -45,6 +45,8 @@ void Foam::sampledIsoSurface::getIsoFields() const
{ {
const fvMesh& fvm = static_cast<const fvMesh&>(mesh()); const fvMesh& fvm = static_cast<const fvMesh&>(mesh());
word pointFldName = "volPointInterpolate(" + isoField_ + ')';
// Get volField // Get volField
// ~~~~~~~~~~~~ // ~~~~~~~~~~~~
@ -64,28 +66,56 @@ void Foam::sampledIsoSurface::getIsoFields() const
if (debug) if (debug)
{ {
Info<< "sampledIsoSurface::getIsoField() : reading " Info<< "sampledIsoSurface::getIsoField() : checking "
<< isoField_ << " from time " << fvm.time().timeName() << isoField_ << " for same time " << fvm.time().timeName()
<< endl; << endl;
} }
storedVolFieldPtr_.reset if
( (
new volScalarField !storedVolFieldPtr_.valid()
|| (fvm.time().timeName() != storedVolFieldPtr_().instance())
)
{
if (debug)
{
Info<< "sampledIsoSurface::getIsoField() : reading "
<< isoField_ << " from time " << fvm.time().timeName()
<< endl;
}
storedVolFieldPtr_.reset
( (
IOobject new volScalarField
( (
isoField_, IOobject
fvm.time().timeName(), (
fvm, isoField_,
IOobject::MUST_READ, fvm.time().timeName(),
IOobject::NO_WRITE, fvm,
false IOobject::MUST_READ,
), IOobject::NO_WRITE,
fvm false
) ),
); fvm
volFieldPtr_ = storedVolFieldPtr_.operator->(); )
);
volFieldPtr_ = storedVolFieldPtr_.operator->();
// Interpolate to get pointField
if (debug)
{
Info<< "sampledIsoSurface::getIsoField() : interpolating "
<< pointFldName << endl;
}
storedPointFieldPtr_.reset
(
volPointInterpolation::New(fvm).interpolate(*volFieldPtr_).ptr()
);
pointFieldPtr_ = storedPointFieldPtr_.operator->();
}
} }
@ -93,8 +123,6 @@ void Foam::sampledIsoSurface::getIsoFields() const
// Get pointField // Get pointField
// ~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~
word pointFldName = "volPointInterpolate(" + isoField_ + ')';
if (fvm.foundObject<pointScalarField>(pointFldName)) if (fvm.foundObject<pointScalarField>(pointFldName))
{ {
if (debug) if (debug)
@ -102,7 +130,6 @@ void Foam::sampledIsoSurface::getIsoFields() const
Info<< "sampledIsoSurface::getIsoField() : lookup " Info<< "sampledIsoSurface::getIsoField() : lookup "
<< pointFldName << endl; << pointFldName << endl;
} }
storedPointFieldPtr_.clear();
pointFieldPtr_ = &fvm.lookupObject<pointScalarField>(pointFldName); pointFieldPtr_ = &fvm.lookupObject<pointScalarField>(pointFldName);
} }
else else
@ -111,15 +138,29 @@ void Foam::sampledIsoSurface::getIsoFields() const
if (debug) if (debug)
{ {
Info<< "sampledIsoSurface::getIsoField() : interpolating " Info<< "sampledIsoSurface::getIsoField() : checking interpolate "
<< pointFldName << endl; << isoField_ << " for same time " << fvm.time().timeName()
<< endl;
} }
storedPointFieldPtr_.reset if
( (
volPointInterpolation::New(fvm).interpolate(*volFieldPtr_).ptr() !storedPointFieldPtr_.valid()
); || (fvm.time().timeName() != storedPointFieldPtr_().instance())
pointFieldPtr_ = storedPointFieldPtr_.operator->(); )
{
if (debug)
{
Info<< "sampledIsoSurface::getIsoField() : interpolating "
<< pointFldName << endl;
}
storedPointFieldPtr_.reset
(
volPointInterpolation::New(fvm).interpolate(*volFieldPtr_).ptr()
);
pointFieldPtr_ = storedPointFieldPtr_.operator->();
}
} }
if (debug) if (debug)