mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: soft update of autoPtr<fileOperation> to refPtr<fileOperation>
Co-authored-by: mattijs <mattijs>
This commit is contained in:
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
);
|
||||
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user