From 77aa2e602630531d528ae054cafb5a123f4150fa Mon Sep 17 00:00:00 2001
From: Andrew Heather <>
Date: Tue, 22 Dec 2020 09:46:42 +0000
Subject: [PATCH] COMP: corrections to interfaceTrackingFvMesh following commit
 14a471f937

---
 .../interfaceTrackingFvMesh.C                 | 84 ++++++++++---------
 .../interfaceTrackingFvMesh.H                 |  7 +-
 2 files changed, 50 insertions(+), 41 deletions(-)

diff --git a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C
index a8b43d2b36b..82fca716490 100644
--- a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C
+++ b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C
@@ -1568,27 +1568,15 @@ Foam::interfaceTrackingFvMesh::interfaceTrackingFvMesh
     dynamicMotionSolverFvMesh(io, doInit),
     aMeshPtr_(new faMesh(*this)),
     fsPatchIndex_(-1),
-    fixedFreeSurfacePatches_
-    (
-        motion().get<wordList>("fixedFreeSurfacePatches")
-    ),
+    fixedFreeSurfacePatches_(),
     nonReflectingFreeSurfacePatches_(),
-    pointNormalsCorrectionPatches_
-    (
-        motion().get<wordList>("pointNormalsCorrectionPatches")
-    ),
-    normalMotionDir_
-    (
-        motion().get<bool>("normalMotionDir")
-    ),
+    pointNormalsCorrectionPatches_(),
+    normalMotionDir_(false),
     motionDir_(Zero),
-    smoothing_(motion().getOrDefault("smoothing", false)),
-    pureFreeSurface_(motion().getOrDefault("pureFreeSurface", true)),
-    rigidFreeSurface_(motion().getOrDefault("rigidFreeSurface", false)),
-    correctContactLineNormals_
-    (
-        motion().getOrDefault("correctContactLineNormals", false)
-    ),
+    smoothing_(false),
+    pureFreeSurface_(true),
+    rigidFreeSurface_(false),
+    correctContactLineNormals_(false),
     sigma0_("zero", dimForce/dimLength/dimDensity, Zero),
     rho_("one", dimDensity, 1.0),
     timeIndex_(-1),
@@ -1605,10 +1593,13 @@ Foam::interfaceTrackingFvMesh::interfaceTrackingFvMesh
     surfactantPtr_(nullptr),
     contactAnglePtr_(nullptr)
 {
-    initializeData();
+    if (doInit)
+    {
+        init(false);    // do not initialise lower levels
+    }
 }
 
-
+/*
 Foam::interfaceTrackingFvMesh::interfaceTrackingFvMesh
 (
     const IOobject& io,
@@ -1630,22 +1621,13 @@ Foam::interfaceTrackingFvMesh::interfaceTrackingFvMesh
     ),
     aMeshPtr_(new faMesh(*this)),
     fsPatchIndex_(-1),
-    fixedFreeSurfacePatches_
-    (
-        motion().get<wordList>("fixedFreeSurfacePatches")
-    ),
+    fixedFreeSurfacePatches_(),
     nonReflectingFreeSurfacePatches_(),
-    pointNormalsCorrectionPatches_
-    (
-        motion().get<wordList>("pointNormalsCorrectionPatches")
-    ),
-    normalMotionDir_
-    (
-        motion().get<bool>("normalMotionDir")
-    ),
+    pointNormalsCorrectionPatches_(),
+    normalMotionDir_(false),
     motionDir_(Zero),
-    smoothing_(motion().getOrDefault("smoothing", false)),
-    pureFreeSurface_(motion().getOrDefault("pureFreeSurface", true)),
+    smoothing_(false),
+    pureFreeSurface_(true),
     sigma0_("zero", dimForce/dimLength/dimDensity, Zero),
     rho_("one", dimDensity, 1.0),
     timeIndex_(-1),
@@ -1661,10 +1643,8 @@ Foam::interfaceTrackingFvMesh::interfaceTrackingFvMesh
     surfaceTensionPtr_(nullptr),
     surfactantPtr_(nullptr),
     contactAnglePtr_(nullptr)
-{
-    initializeData();
-}
-
+{}
+*/
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
@@ -1687,6 +1667,32 @@ Foam::interfaceTrackingFvMesh::~interfaceTrackingFvMesh()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::interfaceTrackingFvMesh::init(const bool doInit)
+{
+    if (doInit)
+    {
+        dynamicMotionSolverFvMesh::init(doInit);
+    }
+
+    aMeshPtr_.reset(new faMesh(*this));
+
+    // Set motion-based data
+    fixedFreeSurfacePatches_ =
+        motion().get<wordList>("fixedFreeSurfacePatches");
+
+    pointNormalsCorrectionPatches_ =
+        motion().get<wordList>("pointNormalsCorrectionPatches");
+
+    normalMotionDir_ = motion().get<bool>("normalMotionDir");
+    smoothing_ = motion().getOrDefault("smoothing", false);
+    pureFreeSurface_ = motion().getOrDefault("pureFreeSurface", true);
+
+    initializeData();
+
+    return true;
+}
+
+
 Foam::areaVectorField& Foam::interfaceTrackingFvMesh::Us()
 {
     if (!UsPtr_)
diff --git a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.H b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.H
index 784ecff18a8..2298f1089ee 100644
--- a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.H
+++ b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.H
@@ -252,7 +252,7 @@ public:
 
         //- Construct from IOobject
         interfaceTrackingFvMesh(const IOobject& io, const bool doInit=true);
-
+/*
         //- Construct from components without boundary.
         //  Boundary is added using addFvPatches() member function
         interfaceTrackingFvMesh
@@ -264,7 +264,7 @@ public:
             labelList&& allNeighbour,
             const bool syncPar = true
         );
-
+*/
 
     //- Destructor
     ~interfaceTrackingFvMesh();
@@ -272,6 +272,9 @@ public:
 
     // Member Functions
 
+        //- Initialise all non-demand-driven data
+        virtual bool init(const bool doInit);
+
         fvMesh& mesh()
         {
             return *this;
-- 
GitLab