ENH: soft update of autoPtr<fileOperation> to refPtr<fileOperation>

Co-authored-by: mattijs <mattijs>
This commit is contained in:
Mark Olesen
2023-05-12 18:43:32 +02:00
parent 8a060e87cb
commit 8d2bf3fc2e
5 changed files with 30 additions and 54 deletions

View File

@ -551,7 +551,7 @@ void correctCoupledBoundaryConditions(fvMesh& mesh)
// Inplace redistribute mesh and any fields
autoPtr<mapDistributePolyMesh> redistributeAndWrite
(
autoPtr<fileOperation>&& writeHandler,
refPtr<fileOperation>& writeHandler,
const Time& baseRunTime,
const fileName& proc0CaseName,
@ -834,18 +834,12 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
}
else
{
autoPtr<fileOperation> 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<mapDistributePolyMesh> 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<fileOperation> writeHandler;
refPtr<fileOperation> 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<mapDistributePolyMesh> distMap = redistributeAndWrite
(
std::move(writeHandler),
writeHandler,
baseRunTime,
proc0CaseName,
@ -2575,11 +2570,7 @@ int main(int argc, char *argv[])
}
else
{
autoPtr<fileOperation> 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
);
}
}

View File

@ -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<fileOperation>&& writeHandler,
refPtr<fileOperation>& writeHandler,
const faMesh* procMesh = nullptr
);

View File

@ -309,7 +309,7 @@ void Foam::faMeshTools::writeProcAddressing
const faMesh& mesh,
const mapDistributePolyMesh& map,
const bool decompose,
autoPtr<fileOperation>&& writeHandler,
refPtr<fileOperation>& writeHandler,
const faMesh* procMesh
)
{
@ -398,11 +398,7 @@ void Foam::faMeshTools::writeProcAddressing
);
}
autoPtr<fileOperation> 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)
{

View File

@ -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<fileOperation>&& writeHandler
refPtr<fileOperation>& writeHandler
);
};

View File

@ -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<fileOperation>&& writeHandler
refPtr<fileOperation>& writeHandler
)
{
Info<< "Writing ("
@ -421,21 +421,14 @@ void Foam::fvMeshTools::writeProcAddressing
);
}
autoPtr<fileOperation> 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)
{