From 0a03ed43bba2998aa84c45103b43ca53c88b61cd Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 18 Mar 2019 18:17:22 +0100
Subject: [PATCH] ENH: add transfer for simple MeshedSurface components

---
 src/surfMesh/MeshedSurface/MeshedSurface.C      | 17 ++++++++++++++++-
 src/surfMesh/MeshedSurface/MeshedSurface.H      |  5 ++++-
 .../MeshedSurfaceIOAllocator.H                  |  4 ++--
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.C b/src/surfMesh/MeshedSurface/MeshedSurface.C
index 8558e26cd4e..468ed66f830 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurface.C
+++ b/src/surfMesh/MeshedSurface/MeshedSurface.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
                             | Copyright (C) 2011-2016 OpenFOAM Foundation
@@ -1107,6 +1107,21 @@ void Foam::MeshedSurface<Face>::swap
 }
 
 
+template<class Face>
+void Foam::MeshedSurface<Face>::transfer
+(
+    pointField& pointLst,
+    List<Face>& faceLst
+)
+{
+    ParentType::clearOut();  // Topology changes
+
+    this->storedPoints().transfer(pointLst);
+    this->storedFaces().transfer(faceLst);
+    this->storedZones().clear();
+}
+
+
 template<class Face>
 void Foam::MeshedSurface<Face>::transfer
 (
diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.H b/src/surfMesh/MeshedSurface/MeshedSurface.H
index 79c69a7b433..7f3aa2b32bd 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurface.H
+++ b/src/surfMesh/MeshedSurface/MeshedSurface.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
                             | Copyright (C) 2011-2016 OpenFOAM Foundation
@@ -482,6 +482,9 @@ public:
         //- Swap contents
         void swap(MeshedSurface<Face>& surf);
 
+        //- Transfer the components
+        void transfer(pointField& pointLst, List<Face>& faceLst);
+
         //- Transfer the contents of the argument and annul the argument
         void transfer(MeshedSurface<Face>& surf);
 
diff --git a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
index ca1563fcce2..8bb4da922a8 100644
--- a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
+++ b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
@@ -53,7 +53,7 @@ namespace Detail
 
 class MeshedSurfaceIOAllocator
 {
-    // Private data
+    // Private Data
 
         //- Points
         pointIOField points_;
@@ -139,7 +139,7 @@ public:
         }
 
 
-    //  Storage Management
+    // Storage Management
 
         //- Clear primitive data (points, faces)
         void clear();
-- 
GitLab