From 8d2bf3fc2e4a4d40aec7bba6d92d28e85afbc66a Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 12 May 2023 18:43:32 +0200 Subject: [PATCH] ENH: soft update of autoPtr to refPtr Co-authored-by: mattijs --- .../redistributePar/redistributePar.C | 40 +++++++------------ .../faMesh/faMeshTools/faMeshTools.H | 5 ++- .../faMesh/faMeshTools/faMeshToolsProcAddr.C | 19 +++------ .../fvMesh/fvMeshTools/fvMeshTools.H | 5 ++- .../fvMesh/fvMeshTools/fvMeshToolsProcAddr.C | 15 ++----- 5 files changed, 30 insertions(+), 54 deletions(-) diff --git a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C index d5bab2a321..24c95b6377 100644 --- a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C +++ b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C @@ -551,7 +551,7 @@ void correctCoupledBoundaryConditions(fvMesh& mesh) // Inplace redistribute mesh and any fields autoPtr redistributeAndWrite ( - autoPtr&& writeHandler, + refPtr& writeHandler, const Time& baseRunTime, const fileName& proc0CaseName, @@ -834,18 +834,12 @@ autoPtr redistributeAndWrite } else { - autoPtr defaultHandler; - if (writeHandler) - { - defaultHandler = fileHandler(std::move(writeHandler)); - } + auto oldHandler = fileOperation::fileHandler(writeHandler); mesh.write(); - if (defaultHandler) - { - writeHandler = fileHandler(std::move(defaultHandler)); - } + writeHandler = fileOperation::fileHandler(oldHandler); + topoSet::removeFiles(mesh); } Info<< "Written redistributed mesh to " @@ -861,7 +855,7 @@ autoPtr redistributeAndWrite mesh, distMap(), decompose, - std::move(writeHandler) + writeHandler ); } else @@ -1064,7 +1058,7 @@ int main(int argc, char *argv[]) // than it writes to // - reconstruct - reads parallel, write on master only and to parent // directory - autoPtr writeHandler; + refPtr writeHandler; if ( fileHandler().type() @@ -1072,7 +1066,8 @@ int main(int argc, char *argv[]) ) { // Install 'uncollated' as fileHandler. Save old one in writeHandler. - writeHandler = fileHandler(fileOperation::NewUncollated()); + writeHandler = + fileOperation::fileHandler(fileOperation::NewUncollated()); } // Switch off parallel synchronisation of cached time directories @@ -1582,7 +1577,7 @@ int main(int argc, char *argv[]) redistributeAndWrite ( - std::move(writeHandler), + writeHandler, baseRunTime, proc0CaseName, @@ -1713,7 +1708,7 @@ int main(int argc, char *argv[]) areaBaseMeshPtr(), // Reconstruct location faDistMap, false, // decompose=false - std::move(writeHandler), + writeHandler, areaMeshPtr.get() // procMesh ); } @@ -2502,7 +2497,7 @@ int main(int argc, char *argv[]) // - but not lagrangian fields; these are done later autoPtr distMap = redistributeAndWrite ( - std::move(writeHandler), + writeHandler, baseRunTime, proc0CaseName, @@ -2575,11 +2570,7 @@ int main(int argc, char *argv[]) } else { - autoPtr defaultHandler; - if (writeHandler) - { - defaultHandler = fileHandler(std::move(writeHandler)); - } + auto oldHandler = fileOperation::fileHandler(writeHandler); IOmapDistributePolyMeshRef ( @@ -2598,10 +2589,7 @@ int main(int argc, char *argv[]) areaProcMeshPtr->write(); - if (defaultHandler) - { - writeHandler = fileHandler(std::move(defaultHandler)); - } + writeHandler = fileOperation::fileHandler(oldHandler); if (decompose) { @@ -2610,7 +2598,7 @@ int main(int argc, char *argv[]) areaProcMeshPtr(), faDistMap, decompose, - std::move(writeHandler) + writeHandler ); } } diff --git a/src/finiteArea/faMesh/faMeshTools/faMeshTools.H b/src/finiteArea/faMesh/faMeshTools/faMeshTools.H index 9b3677b4df..0906f5d550 100644 --- a/src/finiteArea/faMesh/faMeshTools/faMeshTools.H +++ b/src/finiteArea/faMesh/faMeshTools/faMeshTools.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2022 OpenCFD Ltd. + Copyright (C) 2022-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -50,6 +50,7 @@ namespace Foam { // Forward Declarations +class fileOperation; class mapDistributePolyMesh; class polyMesh; class IOobject; @@ -121,7 +122,7 @@ public: const faMesh& mesh, const mapDistributePolyMesh& faDistMap, const bool decompose, - autoPtr&& writeHandler, + refPtr& writeHandler, const faMesh* procMesh = nullptr ); diff --git a/src/finiteArea/faMesh/faMeshTools/faMeshToolsProcAddr.C b/src/finiteArea/faMesh/faMeshTools/faMeshToolsProcAddr.C index 07fdec186f..a9e074decf 100644 --- a/src/finiteArea/faMesh/faMeshTools/faMeshToolsProcAddr.C +++ b/src/finiteArea/faMesh/faMeshTools/faMeshToolsProcAddr.C @@ -309,7 +309,7 @@ void Foam::faMeshTools::writeProcAddressing const faMesh& mesh, const mapDistributePolyMesh& map, const bool decompose, - autoPtr&& writeHandler, + refPtr& writeHandler, const faMesh* procMesh ) { @@ -398,11 +398,7 @@ void Foam::faMeshTools::writeProcAddressing ); } - autoPtr defaultHandler; - if (writeHandler) - { - defaultHandler = fileHandler(std::move(writeHandler)); - } + auto oldHandler = fileOperation::fileHandler(writeHandler); // If we want procAddressing, need to manually write it ourselves @@ -434,11 +430,11 @@ void Foam::faMeshTools::writeProcAddressing // Reconstruct: "procAddressing" only meaningful for rank 0 // and written into base (serial) location (if at all). - if (Pstream::master()) + if (UPstream::master()) { - const bool oldParRun = Pstream::parRun(false); + const bool oldParRun = UPstream::parRun(false); procAddrMap.write(); - Pstream::parRun(oldParRun); + UPstream::parRun(oldParRun); } } @@ -448,10 +444,7 @@ void Foam::faMeshTools::writeProcAddressing const bool pointOk = pointMap.write(); const bool patchOk = patchMap.write(); - if (defaultHandler) - { - writeHandler = fileHandler(std::move(defaultHandler)); - } + writeHandler = fileOperation::fileHandler(oldHandler); if (!edgeOk || !faceOk || !pointOk || !patchOk) { diff --git a/src/finiteVolume/fvMesh/fvMeshTools/fvMeshTools.H b/src/finiteVolume/fvMesh/fvMeshTools/fvMeshTools.H index bee45fc4ec..bdf80b80cf 100644 --- a/src/finiteVolume/fvMesh/fvMeshTools/fvMeshTools.H +++ b/src/finiteVolume/fvMesh/fvMeshTools/fvMeshTools.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2016 OpenFOAM Foundation - Copyright (C) 2015-2022 OpenCFD Ltd. + Copyright (C) 2015-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -48,6 +48,7 @@ namespace Foam { // Forward Declarations +class fileOperation; class mapDistributePolyMesh; /*---------------------------------------------------------------------------*\ @@ -192,7 +193,7 @@ public: const fvMesh& procMesh, const mapDistributePolyMesh& map, const bool decompose, - autoPtr&& writeHandler + refPtr& writeHandler ); }; diff --git a/src/finiteVolume/fvMesh/fvMeshTools/fvMeshToolsProcAddr.C b/src/finiteVolume/fvMesh/fvMeshTools/fvMeshToolsProcAddr.C index 637ab073a2..1cd8e06dda 100644 --- a/src/finiteVolume/fvMesh/fvMeshTools/fvMeshToolsProcAddr.C +++ b/src/finiteVolume/fvMesh/fvMeshTools/fvMeshToolsProcAddr.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2015-2022 OpenCFD Ltd. + Copyright (C) 2015-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -303,7 +303,7 @@ void Foam::fvMeshTools::writeProcAddressing const fvMesh& mesh, const mapDistributePolyMesh& map, const bool decompose, - autoPtr&& writeHandler + refPtr& writeHandler ) { Info<< "Writing (" @@ -421,21 +421,14 @@ void Foam::fvMeshTools::writeProcAddressing ); } - autoPtr defaultHandler; - if (writeHandler) - { - defaultHandler = fileHandler(std::move(writeHandler)); - } + auto oldHandler = fileOperation::fileHandler(writeHandler); const bool cellOk = cellMap.write(); const bool faceOk = faceMap.write(); const bool pointOk = pointMap.write(); const bool patchOk = patchMap.write(); - if (defaultHandler) - { - writeHandler = fileHandler(std::move(defaultHandler)); - } + writeHandler = fileOperation::fileHandler(oldHandler); if (!cellOk || !faceOk || !pointOk || !patchOk) {