From 6dadd3d33e803221123827bb7beb14818e4a3e97 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 1 Feb 2024 15:43:42 +0100 Subject: [PATCH] ENH: include cloudFunction results in vtkCloud writing (#3094) - process the contents of the cloud object registry, which enables output support for calculated values such as Reynolds, Weber numbers etc. ENH: select any/all clouds by default instead of defaultCloud - adds robustness --- .../lagrangian/dataCloud/dataCloud.C | 37 +++++++--- .../lagrangian/dataCloud/dataCloud.H | 12 ++-- .../lagrangian/dataCloud/dataCloudTemplates.C | 8 +-- .../lagrangian/vtkCloud/vtkCloud.C | 68 +++++++++++++------ .../lagrangian/vtkCloud/vtkCloud.H | 8 +-- .../lagrangian/vtkCloud/vtkCloudTemplates.C | 20 ++++-- 6 files changed, 102 insertions(+), 51 deletions(-) diff --git a/src/functionObjects/lagrangian/dataCloud/dataCloud.C b/src/functionObjects/lagrangian/dataCloud/dataCloud.C index e34be5bc70..8ff65489f5 100644 --- a/src/functionObjects/lagrangian/dataCloud/dataCloud.C +++ b/src/functionObjects/lagrangian/dataCloud/dataCloud.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018-2022 OpenCFD Ltd. + Copyright (C) 2018-2024 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -52,12 +52,16 @@ bool Foam::functionObjects::dataCloud::writeCloud const word& cloudName ) { - const auto* objPtr = mesh_.findObject(cloudName); - if (!objPtr) + applyFilter_ = false; + + const auto* cloudPtr = mesh_.findObject(cloudName); + if (!cloudPtr) { return false; } + const auto& currCloud = *cloudPtr; + objectRegistry obrTmp ( IOobject @@ -71,7 +75,7 @@ bool Foam::functionObjects::dataCloud::writeCloud ) ); - objPtr->writeObjects(obrTmp); + currCloud.writeObjects(obrTmp); const auto* pointsPtr = cloud::findIOPosition(obrTmp); @@ -86,7 +90,10 @@ bool Foam::functionObjects::dataCloud::writeCloud // Number of parcels (locally) - label nParcels = (applyFilter_ ? parcelAddr_.count() : pointsPtr->size()); + const label nParcels + ( + applyFilter_ ? parcelAddr_.count() : pointsPtr->size() + ); // Total number of parcels on all processes const label nTotParcels = returnReduce(nParcels, sumOp