From 3fc9267650a21f0d8eeb105d7e4b8b3d7bafcd66 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Wed, 17 Jan 2018 13:38:24 +0100 Subject: [PATCH] BUG: reconstructPar ignores writeLagrangianPositions (fixes #702) - The central InfoSwitch "writeLagrangianPositions" allows writing an additional Lagrangian "positions" file, but these were not being written by reconstructPar. These are now also written in reconstructPar if the central writeLagrangianPositions InfoSwitch is enabled. NOTES - "positions" are reconstructed from the processors "coordinates" file - decomposePar will not attempt to create or redistribute any "positions" files --- .../reconstructPar/reconstructPar.C | 6 +++--- .../reconstruct/reconstructLagrangianPositions.C | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C index 6b6e3bb5358..d545d642331 100644 --- a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C +++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2015-2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -728,7 +728,7 @@ int main(int argc, char *argv[]) ) { Info << "Reconstructing FA fields" << nl << endl; - + faMesh aMesh(mesh); processorFaMeshes procFaMeshes(procMeshes.meshes()); @@ -748,7 +748,7 @@ int main(int argc, char *argv[]) .reconstructFaAreaFields<sphericalTensor>(objects); faReconstructor.reconstructFaAreaFields<symmTensor>(objects); faReconstructor.reconstructFaAreaFields<tensor>(objects); - + faReconstructor.reconstructFaEdgeFields<scalar>(objects); } else diff --git a/src/parallel/reconstruct/reconstruct/reconstructLagrangianPositions.C b/src/parallel/reconstruct/reconstruct/reconstructLagrangianPositions.C index c8e8be4c5e0..30622183ec0 100644 --- a/src/parallel/reconstruct/reconstruct/reconstructLagrangianPositions.C +++ b/src/parallel/reconstruct/reconstruct/reconstructLagrangianPositions.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -60,7 +60,7 @@ void Foam::reconstructLagrangianPositions // Inverting sign if necessary and subtracting 1 from // faceProcAddressing - label mappedTetFace = mag(faceMap[ppi.tetFace()]) - 1; + const label mappedTetFace = mag(faceMap[ppi.tetFace()]) - 1; lagrangianPositions.append ( @@ -77,6 +77,16 @@ void Foam::reconstructLagrangianPositions } IOPosition<Cloud<passiveParticle>>(lagrangianPositions).write(); + + // Force writing of "positions" too, if specified via the InfoSwitch + if (particle::writeLagrangianPositions) + { + IOPosition<Cloud<passiveParticle>> + ( + lagrangianPositions, + IOPosition<Cloud<passiveParticle>>::geometryType::POSITIONS + ).write(); + } } -- GitLab