diff --git a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C index a8b43d2b36bad27055845194b18e4fb080c8b2cc..82fca716490d5885d16e8d9ba58dd5d7beb30450 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 784ecff18a8186c80af1f8179014bfd14b6e3837..2298f1089eec15863327bc8b3cadc4802dbe2240 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;