mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: foamReport mesh quantities are not parallel (fixes #3338)
This commit is contained in:
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2024 OpenCFD Ltd.
|
Copyright (C) 2024-2025 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -32,6 +32,7 @@ License
|
|||||||
#include "cloud.H"
|
#include "cloud.H"
|
||||||
#include "foamVersion.H"
|
#include "foamVersion.H"
|
||||||
#include "fvMesh.H"
|
#include "fvMesh.H"
|
||||||
|
#include "globalMeshData.H"
|
||||||
#include "IFstream.H"
|
#include "IFstream.H"
|
||||||
#include "stringOps.H"
|
#include "stringOps.H"
|
||||||
#include "substitutionModel.H"
|
#include "substitutionModel.H"
|
||||||
@ -56,7 +57,7 @@ void Foam::functionObjects::foamReport::setStaticBuiltins()
|
|||||||
substitutionModel::addBuiltinStr
|
substitutionModel::addBuiltinStr
|
||||||
(
|
(
|
||||||
"OF_PROC_ZERO_DIR",
|
"OF_PROC_ZERO_DIR",
|
||||||
Pstream::parRun() ? "processor0" : ""
|
UPstream::parRun() ? "processor0" : ""
|
||||||
);
|
);
|
||||||
|
|
||||||
substitutionModel::addBuiltin("OF_API", foamVersion::api);
|
substitutionModel::addBuiltin("OF_API", foamVersion::api);
|
||||||
@ -72,26 +73,45 @@ void Foam::functionObjects::foamReport::setStaticBuiltins()
|
|||||||
substitutionModel::addBuiltinStr("OF_CASE_PATH", argList::envGlobalPath());
|
substitutionModel::addBuiltinStr("OF_CASE_PATH", argList::envGlobalPath());
|
||||||
substitutionModel::addBuiltinStr("OF_CASE_NAME", time().globalCaseName());
|
substitutionModel::addBuiltinStr("OF_CASE_NAME", time().globalCaseName());
|
||||||
|
|
||||||
substitutionModel::addBuiltin("OF_NPROCS", Pstream::nProcs());
|
substitutionModel::addBuiltin("OF_NPROCS", UPstream::nProcs());
|
||||||
|
|
||||||
// Set mesh builtins when there is only 1 mesh
|
// Set mesh builtins when there is only 1 mesh
|
||||||
const auto meshes = time_.lookupClass<fvMesh>();
|
const auto meshes = time_.csorted<fvMesh>();
|
||||||
|
|
||||||
if (meshes.size() == 1)
|
if (meshes.size() == 1)
|
||||||
{
|
{
|
||||||
const auto& mesh = *(meshes.begin().val());
|
const auto& mesh = meshes[0];
|
||||||
substitutionModel::addBuiltin("OF_MESH_NCELLS", mesh.nCells());
|
|
||||||
substitutionModel::addBuiltin("OF_MESH_NFACES", mesh.nFaces());
|
substitutionModel::addBuiltin
|
||||||
substitutionModel::addBuiltin("OF_MESH_NEDGES", mesh.nEdges());
|
(
|
||||||
substitutionModel::addBuiltin("OF_MESH_NPOINTS", mesh.nPoints());
|
"OF_MESH_NCELLS",
|
||||||
|
mesh.globalData().nTotalCells()
|
||||||
|
);
|
||||||
|
substitutionModel::addBuiltin
|
||||||
|
(
|
||||||
|
"OF_MESH_NFACES",
|
||||||
|
mesh.globalData().nTotalFaces()
|
||||||
|
);
|
||||||
|
substitutionModel::addBuiltin
|
||||||
|
(
|
||||||
|
"OF_MESH_NEDGES",
|
||||||
|
returnReduce(mesh.nEdges(), sumOp<label>())
|
||||||
|
);
|
||||||
|
substitutionModel::addBuiltin
|
||||||
|
(
|
||||||
|
"OF_MESH_NPOINTS",
|
||||||
|
mesh.globalData().nTotalPoints()
|
||||||
|
);
|
||||||
substitutionModel::addBuiltin
|
substitutionModel::addBuiltin
|
||||||
(
|
(
|
||||||
"OF_MESH_NINTERNALFACES",
|
"OF_MESH_NINTERNALFACES",
|
||||||
mesh.nInternalFaces()
|
returnReduce(mesh.nInternalFaces(), sumOp<label>())
|
||||||
);
|
);
|
||||||
substitutionModel::addBuiltin
|
substitutionModel::addBuiltin
|
||||||
(
|
(
|
||||||
"OF_MESH_NBOUNDARYFACES",
|
"OF_MESH_NBOUNDARYFACES",
|
||||||
mesh.nBoundaryFaces()
|
// TBD: use mesh.boundaryMesh().nNonProcessorFaces() ?
|
||||||
|
returnReduce(mesh.nBoundaryFaces(), sumOp<label>())
|
||||||
);
|
);
|
||||||
substitutionModel::addBuiltin
|
substitutionModel::addBuiltin
|
||||||
(
|
(
|
||||||
@ -123,8 +143,8 @@ void Foam::functionObjects::foamReport::setDynamicBuiltins()
|
|||||||
substitutionModel::setBuiltinStr("OF_DATE_NOW", clock::date());
|
substitutionModel::setBuiltinStr("OF_DATE_NOW", clock::date());
|
||||||
substitutionModel::setBuiltinStr("OF_CLOCK_NOW", clock::clockTime());
|
substitutionModel::setBuiltinStr("OF_CLOCK_NOW", clock::clockTime());
|
||||||
|
|
||||||
substitutionModel::setBuiltin("OF_NREGIONS", time().names<fvMesh>().size());
|
substitutionModel::setBuiltin("OF_NREGIONS", time().count<fvMesh>());
|
||||||
substitutionModel::setBuiltin("OF_NCLOUDS", time().names<cloud>().size());
|
substitutionModel::setBuiltin("OF_NCLOUDS", time().count<cloud>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user