From 07ccd80afdd7873966149d2d1e544ef10b24c2ca Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Fri, 11 Feb 2022 14:23:33 +0100 Subject: [PATCH] BUG: sample/store surface field triggers dimension check (fixes #2361) - when used for example with wallShearStress, the stress field is initially created as incompressible but later updated with the correct compressible/incompressible dimensions. If this field is sampled as a surface and stored on the registry the dimensions should be reset() and not '=' assigned, since that causes a dimension check which will obviously fail. --- src/surfMesh/polySurface/polySurfaceTemplates.C | 6 +++--- src/surfMesh/surfMesh/surfMeshTemplates.C | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/surfMesh/polySurface/polySurfaceTemplates.C b/src/surfMesh/polySurface/polySurfaceTemplates.C index 4d697eb0393..39464f6eb91 100644 --- a/src/surfMesh/polySurface/polySurfaceTemplates.C +++ b/src/surfMesh/polySurface/polySurfaceTemplates.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -107,7 +107,7 @@ void Foam::polySurface::storeField if (dimfield) { - dimfield->dimensions() = dims; + dimfield->dimensions().reset(dims); // Dimensions may have changed dimfield->field() = values; } else @@ -148,7 +148,7 @@ void Foam::polySurface::storeField if (dimfield) { - dimfield->dimensions() = dims; + dimfield->dimensions().reset(dims); // Dimensions may have changed dimfield->field() = std::move(values); } else diff --git a/src/surfMesh/surfMesh/surfMeshTemplates.C b/src/surfMesh/surfMesh/surfMeshTemplates.C index cf14e9d7446..e777844f6db 100644 --- a/src/surfMesh/surfMesh/surfMeshTemplates.C +++ b/src/surfMesh/surfMesh/surfMeshTemplates.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -45,7 +45,7 @@ void Foam::surfMesh::storeField if (dimfield) { - dimfield->dimensions() = dims; + dimfield->dimensions().reset(dims); // Dimensions may have changed dimfield->field() = values; } else @@ -85,7 +85,7 @@ void Foam::surfMesh::storeField if (dimfield) { - dimfield->dimensions() = dims; + dimfield->dimensions().reset(dims); // Dimensions may have changed dimfield->field() = std::move(values); } else -- GitLab