From 4f2ec88d24b327454178e64d32b2ac40544a34a5 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 10 Oct 2018 10:32:14 +0200 Subject: [PATCH] ENH: improvements to the parallelization of ensightCloud output - communication mode is now selectable (default is blocking) - eliminate serial-only version as being redundant --- .../dataConversion/foamToEnsight/Make/files | 1 - .../dataConversion/foamToEnsight/Make/options | 4 +- .../foamToEnsight/ensightOutputCloud.C | 161 ---------------- .../foamToEnsightParts/Make/files | 1 - .../foamToEnsightParts/Make/options | 4 +- .../ensightOutputSerialCloud.C | 95 ---------- .../ensightOutputSerialCloud.H | 89 --------- .../ensightOutputSerialCloudTemplates.C | 90 --------- .../foamToEnsightParts/foamToEnsightParts.C | 48 +++-- src/lagrangian/intermediate/Make/files | 1 + .../conversion/ensight/ensightOutputCloud.C | 172 ++++++++++++++++++ .../conversion/ensight}/ensightOutputCloud.H | 36 ++-- .../ensight}/ensightOutputCloudTemplates.C | 134 +++++++------- 13 files changed, 291 insertions(+), 545 deletions(-) delete mode 100644 applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C delete mode 100644 applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputSerialCloud.C delete mode 100644 applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputSerialCloud.H delete mode 100644 applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputSerialCloudTemplates.C create mode 100644 src/lagrangian/intermediate/conversion/ensight/ensightOutputCloud.C rename {applications/utilities/postProcessing/dataConversion/foamToEnsight => src/lagrangian/intermediate/conversion/ensight}/ensightOutputCloud.H (75%) rename {applications/utilities/postProcessing/dataConversion/foamToEnsight => src/lagrangian/intermediate/conversion/ensight}/ensightOutputCloudTemplates.C (50%) diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files index a474a8fcfc..87ee002e04 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files @@ -1,4 +1,3 @@ -ensightOutputCloud.C foamToEnsight.C EXE = $(FOAM_APPBIN)/foamToEnsight diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options index 82fc2ecd28..2ca27b9fbc 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options @@ -4,10 +4,10 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/conversion/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/lagrangian/basic/lnInclude + -I$(LIB_SRC)/lagrangian/intermediate/lnInclude EXE_LIBS = \ -ldynamicMesh \ -lgenericPatchFields \ - -llagrangian \ + -llagrangianIntermediate \ -lconversion diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C deleted file mode 100644 index ed76498ad0..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C +++ /dev/null @@ -1,161 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -\*---------------------------------------------------------------------------*/ - -#include "ensightOutputCloud.H" - -#include "fvMesh.H" -#include "passiveParticle.H" -#include "Cloud.H" -#include "pointList.H" - -// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // - -void Foam::ensightCloud::writePositions -( - const fvMesh& mesh, - const word& cloudName, - const bool exists, - autoPtr& output -) -{ - // Total number of parcels on all processes - label nTotParcels = 0; - autoPtr> cloudPtr; - - if (exists) - { - cloudPtr.reset(new Cloud(mesh, cloudName, false)); - nTotParcels = cloudPtr().size(); - } - reduce(nTotParcels, sumOp