From f12399c39b8cdc2ed5e6ad8ee6d535af88710366 Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin Date: Mon, 28 Feb 2022 13:50:05 +0000 Subject: [PATCH] ENH: DMD: add multi-patch input functionality --- src/functionObjects/field/DMD/DMD.C | 24 +++++--- src/functionObjects/field/DMD/DMD.H | 22 ++++--- .../field/DMD/DMDModels/derived/STDMD/STDMD.C | 9 ++- .../field/DMD/DMDModels/derived/STDMD/STDMD.H | 12 ++-- .../DMDModels/derived/STDMD/STDMDTemplates.C | 61 +++++++++++-------- src/functionObjects/field/DMD/DMDTemplates.C | 35 ++++++----- 6 files changed, 101 insertions(+), 62 deletions(-) diff --git a/src/functionObjects/field/DMD/DMD.C b/src/functionObjects/field/DMD/DMD.C index d419543586..e67ba80d61 100644 --- a/src/functionObjects/field/DMD/DMD.C +++ b/src/functionObjects/field/DMD/DMD.C @@ -91,22 +91,21 @@ void Foam::functionObjects::DMD::initialise() { const label nComps = nComponents(fieldName_); - if (patch_.empty()) + if (patches_.empty()) { nSnap_ = nComps*mesh_.nCells(); } else { - const label patchi = mesh_.boundaryMesh().findPatchID(patch_); + const labelList patchis + ( + mesh_.boundaryMesh().patchSet(patches_).sortedToc() + ); - if (patchi < 0) + for (const label patchi : patchis) { - FatalErrorInFunction - << "Cannot find patch " << patch_ - << exit(FatalError); + nSnap_ += nComps*(mesh_.C().boundaryField()[patchi]).size(); } - - nSnap_ = nComps*(mesh_.C().boundaryField()[patchi]).size(); } const label nSnapTotal = returnReduce(nSnap_, sumOp