From 6332308c57f62d34c2531cfa13a0e01de17968c4 Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Wed, 6 Jun 2012 15:14:48 +0100
Subject: [PATCH] edgeMesh: renamed edgeFormats edgeMeshFormats

---
 .../edgeMeshFormats/edgeMeshFormatsCore.C     | 199 ++++++++++++++++++
 .../edgeMeshFormats/edgeMeshFormatsCore.H     | 124 +++++++++++
 2 files changed, 323 insertions(+)
 create mode 100644 src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
 create mode 100644 src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H

diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
new file mode 100644
index 00000000000..05385ce662e
--- /dev/null
+++ b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
@@ -0,0 +1,199 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "edgeMeshFormatsCore.H"
+
+#include "Time.H"
+#include "IFstream.H"
+#include "OFstream.H"
+#include "edgeMesh.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+Foam::word Foam::fileFormats::edgeMeshFormatsCore::nativeExt("eMesh");
+
+
+// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
+
+Foam::string Foam::fileFormats::edgeMeshFormatsCore::getLineNoComment
+(
+    IFstream& is
+)
+{
+    string line;
+    do
+    {
+        is.getLine(line);
+    }
+    while ((line.empty() || line[0] == '#') && is.good());
+
+    return line;
+}
+
+
+#if 0
+Foam::fileName Foam::fileFormats::edgeMeshFormatsCore::localMeshFileName
+(
+    const word& meshName
+)
+{
+    const word name(meshName.size() ? meshName : surfaceRegistry::defaultName);
+
+    return fileName
+    (
+        surfaceRegistry::prefix/name/surfMesh::meshSubDir
+      / name + "." + nativeExt
+    );
+}
+
+
+Foam::fileName Foam::fileFormats::edgeMeshFormatsCore::findMeshInstance
+(
+    const Time& t,
+    const word& meshName
+)
+{
+    fileName localName = localMeshFileName(meshName);
+
+    // Search back through the time directories list to find the time
+    // closest to and lower than current time
+
+    instantList ts = t.times();
+    label instanceI;
+
+    for (instanceI = ts.size()-1; instanceI >= 0; --instanceI)
+    {
+        if (ts[instanceI].value() <= t.timeOutputValue())
+        {
+            break;
+        }
+    }
+
+    // Noting that the current directory has already been searched
+    // for mesh data, start searching from the previously stored time directory
+
+    if (instanceI >= 0)
+    {
+        for (label i = instanceI; i >= 0; --i)
+        {
+            if (isFile(t.path()/ts[i].name()/localName))
+            {
+                return ts[i].name();
+            }
+        }
+    }
+
+    return "constant";
+}
+
+
+Foam::fileName Foam::fileFormats::edgeMeshFormatsCore::findMeshFile
+(
+    const Time& t,
+    const word& meshName
+)
+{
+    fileName localName = localMeshFileName(meshName);
+
+    // Search back through the time directories list to find the time
+    // closest to and lower than current time
+
+    instantList ts = t.times();
+    label instanceI;
+
+    for (instanceI = ts.size()-1; instanceI >= 0; --instanceI)
+    {
+        if (ts[instanceI].value() <= t.timeOutputValue())
+        {
+            break;
+        }
+    }
+
+    // Noting that the current directory has already been searched
+    // for mesh data, start searching from the previously stored time directory
+
+    if (instanceI >= 0)
+    {
+        for (label i = instanceI; i >= 0; --i)
+        {
+            fileName testName(t.path()/ts[i].name()/localName);
+
+            if (isFile(testName))
+            {
+                return testName;
+            }
+        }
+    }
+
+    // fallback to "constant"
+    return t.path()/"constant"/localName;
+}
+#endif
+
+
+bool Foam::fileFormats::edgeMeshFormatsCore::checkSupport
+(
+    const wordHashSet& available,
+    const word& ext,
+    const bool verbose,
+    const word& functionName
+)
+{
+    if (available.found(ext))
+    {
+        return true;
+    }
+    else if (verbose)
+    {
+        wordList known = available.sortedToc();
+
+        Info<<"Unknown file extension for " << functionName
+            << " : " << ext << nl
+            <<"Valid types: (";
+        // compact output:
+        forAll(known, i)
+        {
+            Info<<" " << known[i];
+        }
+        Info<<" )" << endl;
+    }
+
+    return false;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::fileFormats::edgeMeshFormatsCore::edgeMeshFormatsCore()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::fileFormats::edgeMeshFormatsCore::~edgeMeshFormatsCore()
+{}
+
+
+// ************************************************************************* //
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
new file mode 100644
index 00000000000..42e92394eed
--- /dev/null
+++ b/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
@@ -0,0 +1,124 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::fileFormats::edgeMeshFormatsCore
+
+Description
+    A collection of helper functions for reading/writing edge formats.
+
+SourceFiles
+    edgeMeshFormatsCore.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef edgeMeshFormatsCore_H
+#define edgeMeshFormatsCore_H
+
+#include "Map.H"
+#include "HashSet.H"
+#include "labelList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+
+class IFstream;
+class Time;
+
+namespace fileFormats
+{
+
+/*---------------------------------------------------------------------------*\
+                       Class edgeMeshFormatsCore Declaration
+\*---------------------------------------------------------------------------*/
+
+class edgeMeshFormatsCore
+{
+protected:
+
+    // Protected Member Functions
+
+        //- Read non-comment line
+        static string getLineNoComment(IFstream&);
+
+public:
+
+    // Static Data
+
+        //- The file extension corresponding to 'native' edge format
+        //  Normally "eMesh" (edge-mesh)
+        static word nativeExt;
+
+    // Static Member Functions
+
+        static bool checkSupport
+        (
+            const wordHashSet& available,
+            const word& ext,
+            const bool verbose,
+            const word& functionName
+        );
+
+       // //- Return the local file name (within time directory)
+       // //  NEEDS FIXING
+       // static fileName localMeshFileName(const word& edgeName="");
+
+       // //- Find instance with edgeName
+       // //  NEEDS FIXING
+       // static fileName findMeshInstance
+       // (
+       //     const Time&,
+       //     const word& edgeName=""
+       // );
+
+       // //- Find mesh file with edgeName
+       // //  NEEDS FIXING
+       // static fileName findMeshFile(const Time&, const word& edgeName="");
+
+
+    // Constructors
+
+        //- Construct null
+        edgeMeshFormatsCore();
+
+
+    //- Destructor
+    virtual ~edgeMeshFormatsCore();
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace fileFormats
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab