ENH: rationalize cloud method inheritance

- a top-level cloud::nParcels() virtual, which is overloaded by the
  first level of Cloud inheritance. This permits quick determination of
  cloud sizes, even when retrieved from registry with the base level.
  Eg,
      cloud* cldPtr = mesh.cfindObject<cloud>("myCloud");
      label nParcels = (cldPtr ? cldPtr->nParcels() : 0);

- make writeLagrangianPositions on by default unless explicitly
  disabled in the InfoSwitches.

  Flag output errors (where neither coordinates nor positions are
  written) with Fatal.

- additional IOField helper functions in cloud

STYLE: simplify iterator inheritance
This commit is contained in:
Mark Olesen
2019-08-02 17:20:18 +02:00
committed by Andrew Heather
parent 0cfd019b92
commit e90eafcf18
17 changed files with 135 additions and 123 deletions

View File

@ -159,7 +159,7 @@ addGeometry
objPtr->writeObjects(obrTmp);
const auto* pointsPtr = obrTmp.findObject<vectorField>("position");
const auto* pointsPtr = cloud::findIOPosition(obrTmp);
if (!pointsPtr)
{

View File

@ -46,7 +46,7 @@ Foam::functionObjects::runTimePostPro::geometryCloud::gatherCloud
auto multiPiece = vtkSmartPointer<vtkMultiPieceDataSet>::New();
multiPiece->SetNumberOfPieces(Pstream::nProcs());
const auto* pointsPtr = obrTmp.findObject<vectorField>("position");
const auto* pointsPtr = cloud::findIOPosition(obrTmp);
if (!needsCollective())
{